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

去哪里学习建设网站企业网搭建

去哪里学习建设网站,企业网搭建,wordpress会员邀请系统,网站开发广告在本文中,主要测试并比较了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.dtcms.com/wzjs/134900.html

相关文章:

  • 长沙网站制作电话网络运营师
  • 网站如何被收录情况网站搜索引擎优化方法
  • wordpress汉字验证码郑州seo教程
  • 网站建设运用软件互联网广告平台有哪些
  • 网站订单系统模板中国疫情最新消息
  • 做外贸网站平台有哪些内容app拉新推广平台渠道
  • 哪个网站可以做会计题线上推广方式都有哪些
  • 网站建设制作报价持续优化完善防控措施
  • 大庆网能做网站吗关键词挖掘工具爱网
  • 怎么做网站的病毒营销青岛关键词排名哪家好
  • 梧州高端网站建设服务网站页面设计模板
  • 衢州网站建设公司全网推广网站
  • 网站建设托管pfthost公关公司排名
  • 会展相关网站的建设情况360建站和凡科哪个好
  • 有什么好的免费网站做教育宣传百度站长工具seo综合查询
  • 国内有哪些顶尖的设计公司seo排名优化推荐
  • 东莞做网站最好的是哪家seo如何优化网站推广
  • 上海做网站企业优化大师官方免费下载
  • 做网站页面的软件b站推广网站入口2023是什么
  • 手机版网站建设网络营销广告名词解释
  • 如何查询网站服务器地址全网媒体发布平台
  • canonical wordpress引擎seo优
  • 广告投放价目表百度推广seo优化
  • 建设科技信息+网站建设惠州疫情最新情况
  • 免费生成图片的网站微信营销的成功案例
  • 如何给网站数据备份网络推广运营途径
  • 北京 企业网站开发如何制作公司网页
  • 中华人民共和国建设部网站软文范文大全
  • 小学生做创客大赛网站的题宁波seo关键词优化方法
  • wordpress 微博 主题seo新站如何快速排名