当前位置: 首页 > news >正文

网站工作室和网络公司一个完整的品牌策划方案范文

网站工作室和网络公司,一个完整的品牌策划方案范文,大连旅顺,青浦郑州阳网站建设在本文中,主要测试并比较了Go—Gin和Rust—Actix之间的多部分文件上传性能。 设置 所有测试都在配备16G内存的 MacBook Pro M1 上执行。 软件版本为: Go v1.20.5Rust v1.70.0 测试工具是一个基于 libcurl 并使用标准线程的自定义工具,能…

img

在本文中,主要测试并比较了Go—Gin和Rust—Actix之间的多部分文件上传性能。

设置

所有测试都在配备16G内存的 MacBook Pro M1 上执行。

软件版本为:

  • Go v1.20.5
  • Rust v1.70.0

测试工具是一个基于 libcurl 并使用标准线程的自定义工具,能够发送多部分请求。

资产目录中有 100,000 个文件。每个文件的大小都是确切的 100K。这些文件数量在测试工作线程之间进行分配。同一个文件不会一遍又一遍地上传。工作线程会循环处理分配给它们的文件。一旦它们处理完所有分配的文件,它们就会回到第一个文件重新开始。

每个请求携带两个文件作为多部分请求体。请求的头部和体部大致如下:

// -- Headers{"content-length": "205150","content-type": "multipart/form-data; boundary=------------------------3f6a15690b315b91",
}// -- Body--------------------------3f6a15690b315b91
Content-Disposition: form-data; name="files"; filename="45469"
Content-Type: application/octet-stream<<File suppressed>>
--------------------------3f6a15690b315b91
Content-Disposition: form-data; name="files"; filename="42102"
Content-Type: application/octet-stream<<file suppressed>>
--------------------------3f6a15690b315b91--

代码

Go

package mainimport ("github.com/gin-gonic/gin""github.com/jaevor/go-nanoid"
)func main() {dst := "/Users/mayankc/Work/source/perfComparisons/uploads/"canonicID, err := nanoid.Standard(21)if err != nil {panic(err)}router := gin.New()router.POST("/upload", func(c *gin.Context) {form, _ := c.MultipartForm()files := form.File["files"]for _, file := range files {c.SaveUploadedFile(file, dst+canonicID())}c.Writer.WriteHeader(201)})router.Run(":3000")
}

Rust

use actix_multipart::{form::{tempfile::{TempFile, TempFileConfig},MultipartForm,}
};
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer, Responder};
use nanoid::nanoid;const BASE_DIR: &str = "/Users/mayankc/Work/source/perfComparisons/uploads/";#[derive(Debug, MultipartForm)]
struct UploadForm {#[multipart(rename = "files")]files: Vec<TempFile>,
}async fn save_files(MultipartForm(form): MultipartForm<UploadForm>,
) -> Result<impl Responder, Error> {for f in form.files {let path = format!("{}{}", BASE_DIR, nanoid!());f.file.persist(path).unwrap();}Ok(HttpResponse::Ok())
}#[actix_web::main]
async fn main() -> std::io::Result<()> {HttpServer::new(|| {App::new().wrap(middleware::Logger::default()).app_data(TempFileConfig::default().directory(BASE_DIR)).service(web::resource("/upload").route(web::post().to(save_files)),)}).bind(("127.0.0.1", 3000))?.run().await
}

Rust代码已在release mode下编译。

结果

对10个、50个和100个并发连接执行测试。每个测试总共执行10万个请求。
以下是结果:

img

img

结论

从结果中使用以下公式生成了一个评分表。对于每个测量,获取获胜的幅度。如果获胜幅度为:

  • < 5%,不给予任何分数
  • 在 5% 和 20% 之间,给予获胜者 1 分
  • 在 20% 和 50% 之间,给予获胜者 2 分
  • > 50%,给予获胜者 3 分

img

img

http://www.yayakq.cn/news/820044/

相关文章:

  • 沧州公司网站建设做企业网站建设公司哪家好
  • 抚州教育网站建设互联网外包公司值得去吗
  • 一张网页设计图多少钱企业网站优化外包
  • 如何进行网站的推广seo 优化技术难度大吗
  • 企业策划 企业网站建设 品牌设计培训心得模板
  • 网站生成静态成都网络公司小程序
  • 网站建设的请示报告多少工资
  • vps主机上新增网站旅游网站排名全球
  • 泉州网站制作运营商专业如何制作网络
  • 代做道具网站文献综述 php网站开发
  • 分类信息网站做淘客wordpress数字交易
  • 网页功能介绍徐州自动seo
  • 山西专业网站建设价目wordpress自动视频播放
  • 汕尾旅游攻略app跳转网站电影网站如何做seo
  • 深圳网站建设去哪里民宿网站开发数据流图
  • 外贸 网站 seo本地搭建linux服务器做网站
  • 网站设计优化方案十大接单推广app平台
  • 做外贸的网站赚钱吗营销型网站建设论坛
  • 网站内容好wordpress产品介绍
  • 网站是怎么建立起来的品牌策划岗位职责
  • 海南营销网站建设云网站 制作
  • 四川鸿业建设集团公司网站雷州手机网站建设
  • 我的世界怎么做的好看视频网站wordpress分类筛选
  • 网站框架模板做网站 免费字体
  • 中山搜索排名提升浙江seo外包
  • 网站排行榜上升代码小程序制作页面教程
  • 哈尔滨网站建设的公司在线学网页设计
  • 西安免费网站建站模板wordpress 默认 私密
  • 网站没有域名设置吗安卓软件开发app
  • 郑大二附院网站建设招标外贸资源网