今天无聊又翻出了一篇很久以前golang和.net测试的文章(原文),
很是好奇7、8年过去了,golang和.net 有啥变化吗?
于是我在电脑上又测了一遍。
我的电脑是win10系统,.net sdk都下了最新的版本,重新安装了一编,golang用的是go1.24.1。
好了,各位大佬来看看测试结果吧
.NET个版本测试结果:

gin和iris框架测试结果:

- 完成
5000000 个请求的时间 – 越短越好。 - 请求次数/每秒 – 越大越好。
- 等待时间 — 越短越好。
- 内存使用 — 越小越好。
- 吞吐量 — 越大越好。
.NET 代码:
NET5.0、6.0、7.0:
using Microsoft.AspNetCore.Mvc;
namespace _5.Controllers
{
// ValuesController is the equivalent
// `ValuesController` of the Iris 8.3 mvc application.
[Route("api/[controller]")]
public class ValuesController : ControllerBase
{
// Get handles "GET" requests to "api/values/{id}".
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
}
// Put handles "PUT" requests to "api/values/{id}".
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// Delete handles "DELETE" requests to "api/values/{id}".
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}
NET8.0、9.0、10.0:
app.MapGet("/api/values/{id}", (int id) =>
{
return "value";
})
.WithName("GetApi")
.WithOpenApi();
Gin 代码:
package main
import (
"github.com/gin-gonic/gin"
"io/ioutil"
)
func main() {
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = ioutil.Discard
r := gin.Default()
r.GET("/api/values/:id", func(c *gin.Context) {
c.String(200, "value")
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
iris 代码:
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
booksAPI := app.Party("/api")
{
booksAPI.Use(iris.Compression)
booksAPI.Get("/values/{id}", Get)
}
app.Listen(":8080")
}
func Get(ctx iris.Context) {
// id,_ := vc.Params.GetInt("id")
ctx.WriteString("value")
}
电脑配置:
-
CPU:7840H
-
内存:32.0 GB
-
网卡:AX210
-
操作系统: Windows 10 22H2 专业版
参考地址:
https://linux.cn/article-8935-1-rel.html
https://hackernoon.com/go-vs-net-core-in-terms-of-http-performance-7535a61b67b8
© 版权声明
THE END


![表情[baoquan]-拾光赋](https://blogs.ink/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容