asp.net core VS goang web[修正篇]
2016-06-05 20:45
776 查看
先前写过一篇文章:http://www.cnblogs.com/gengzhe/p/5557789.html,也是asp.net core和golang web的对比,热心的园友提出了几点问题,如下:
1、需要加入sleep来模拟实际业务,这样才能考验协程调度能力。
2、golang擅长的是多核环境。
于是今天修正了一下再次进行测试
CPU:E1230-v2
内存:16GB
操作系统:centos 7 (3核心2GB内存)
下面是代码:
go
C#
测试结果(1000用户并发)
go
C#
测试结果确实是golang稍微好一点。
个人总结的差距有2点
1、go是静态编译,运行速度按理应该快一些。
2、.NET MVC的封装度更好,请求在进入业务逻辑前需要进行大量的处理。
以上仅为个人观点。
1、需要加入sleep来模拟实际业务,这样才能考验协程调度能力。
2、golang擅长的是多核环境。
于是今天修正了一下再次进行测试
CPU:E1230-v2
内存:16GB
操作系统:centos 7 (3核心2GB内存)
下面是代码:
go
package main import ( "fmt" "net/http" "time" ) func main() { fmt.Println("This is webserver base!") //第一个参数为客户端发起http请求时的接口名,第二个参数是一个func,负责处理这个请求。 http.HandleFunc("/login", loginTask) //服务器要监听的主机地址和端口号 err := http.ListenAndServe("192.168.199.236:8081", nil) if err != nil { fmt.Println("ListenAndServe error: ", err.Error()) } } func loginTask(w http.ResponseWriter, req *http.Request) { //获取客户端通过GET/POST方式传递的参数 time.Sleep(time.Millisecond*300) req.ParseForm() fmt.Fprint(w, "Hello Word!") }
C#
public class MyHandlerMiddleware { // Must have constructor with this signature, otherwise exception at run time public MyHandlerMiddleware(RequestDelegate next) { // This is an HTTP Handler, so no need to store next } public async Task Invoke(HttpContext context) { await Task.Delay(1*300); await context.Response.WriteAsync("Hello World!"); } // ... } public class Startup { public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.MapWhen(context => { return context.Request.Path.ToString().EndsWith("jjj.go"); }, ap => { ap.UseMiddleware<MyHandlerMiddleware>(); }); } }
测试结果(1000用户并发)
go
C#
测试结果确实是golang稍微好一点。
个人总结的差距有2点
1、go是静态编译,运行速度按理应该快一些。
2、.NET MVC的封装度更好,请求在进入业务逻辑前需要进行大量的处理。
以上仅为个人观点。
相关文章推荐
- ASp.net
- Asp.net入门初了解
- Django模拟ASP.NET MVC 自动匹配路由(转载)
- Django模拟ASP.NET MVC 自动匹配路由(转载)
- Visual Studio 2015和ASP.NET 5中可用的前端开发工具集
- kali下启用metasploit
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 登录界面前端样式和特效
- ASP.NET 成员资格
- ASP.Net Web API 的参数绑定[翻译]
- 关于RaspberryPi 3的CPU
- Raspberry资源收集
- vs2012发布网站 无法移除目录“obj\Release\AspnetCompileMerge\TempBuildDir” 文件或目录损坏且无法读取
- Asp.net MVC 数据注解与验证
- WebResource-asp.net自定义控件引用外部资源方法
- ASP.NET Web API自身对CORS的支持: CORS授权检验的实施
- ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
- ASP.NET Web API自身对CORS的支持:从实例开始
- 通过扩展让ASP.NET Web API支持JSONP
- 图解asp.net数据库连接字符串加密和aspnet_regiis
- asp.net备忘