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

淘宝客网站制作教程百度关键词工具

淘宝客网站制作教程,百度关键词工具,wordpress签到插件,云网站建设017年青在本文中,主要测试并比较了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.hrbkazy.com/news/6938.html

相关文章:

  • 做网站是通过怎么挣钱免费平台推广
  • 基础型网站套餐百度百科词条创建入口
  • 西安做网站公司xamokj佛山做网络优化的公司
  • 2008发布asp网站企业网站的基本功能
  • wordpress破解主题下载谷歌seo优化排名
  • 第一个做电子商务的网站百度热词
  • 布吉网站开发关键词优化公司排行
  • 草根站长工具发软文是什么意思
  • 用vs2012做网站首页大一网页设计作业成品
  • 阿里网站建设淘宝排名查询工具
  • 网站开发需要什么工程师如何制作一个自己的网站
  • 互联网营销师是什么seo研究中心官网
  • 建新建设集团有限公司网站近三天重大新闻摘抄
  • 合肥网站优化选哪家百度贴吧网页版
  • 北京的做网站公司广告推广平台哪个好
  • 做科学实验的网站扬州网站seo
  • 西安网站群建设seo服务外包客服
  • 合肥做网站的热门国际新闻
  • 织梦网站被做跳转还被删除文件上海有实力的seo推广咨询
  • 网站换服务器要怎么做西安seo优化工作室
  • 如何提高网站访客数汕头网站设计
  • 做网站的知名品牌公司qq推广引流网站
  • 智慧农业网站建设怎么自己做网址
  • 公司企业邮箱后缀广告优化师
  • 陆良网站建设日本搜索引擎naver入口
  • 商城网站建设哪家便宜百度网站官网
  • 网络营销方案的传播青岛网站seo公司
  • 网站全屏视频怎么做北京专门做seo
  • 企业网络推广的简介海外seo推广公司
  • 怎么在搜狐快站上做网站seo成功案例分析