Go语言和ASP.NET的一般处理程序在处理WEB请求时的速度比较

1、首先写一个Go语言的简单WEB程序,就返回一个HelloWord!

package main

import (
f "fmt"
"log"
"net/http"
// "strings"
) func sayhelloName(w http.ResponseWriter, r *http.Request) {
// r.ParseForm()
// f.Println(r.Form)
// f.Println("path", r.URL.Path)
// f.Println("scheme", r.URL.Scheme)
// f.Println(r.Form["url_long"])
// for k, v := range r.Form {
// f.Println("key:", k, "val:", strings.Join(v, "、"))
// } f.Fprintln(w, "hello world!")
}
func main() {
http.HandleFunc("/", sayhelloName)
err := http.ListenAndServe(":8080", nil)
if err != nil {
log.Fatal("ListenAndServe:", err)
}
}

2、建一个Asp.net的Handler1.ashx的一般处理程序,并运行于IIS中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace TESTWeb
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.Write("hello world!");
} public bool IsReusable
{
get
{
return false;
}
}
}
}

3、用C#写一个控制台程序,用来模拟发起10000次请求时,速度比较:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text; namespace TESTSpeed
{
class Program
{
static void Main(string[] args)
{ WebClient wc = new WebClient();
DateTime dt1 = DateTime.Now;
for (int i = ; i < ; i++)
{
var result = wc.DownloadString("http://localhost:48563/handler1.ashx?t=" + DateTime.Now.Ticks);
}
DateTime dt2 = DateTime.Now;
Console.WriteLine("Asp.net一般处理程序用时:" + (dt2 - dt1).TotalMilliseconds); WebClient wc2 = new WebClient();
DateTime dt3 = DateTime.Now;
for (int i = ; i < ; i++)
{
var result = wc2.DownloadString("http://127.0.0.1:8080/?t=" + DateTime.Now.Ticks);
}
DateTime dt4 = DateTime.Now;
Console.WriteLine("Go语言用时:" + (dt4 - dt3).TotalMilliseconds);
}
}
}

4、测试结果:

Go语言用时:811.0464ms

Asp.net一般处理程序:14017.8017ms

5、结论:Go不是一般的快!!!!相差了17倍!!!

Go语言和ASP.NET的一般处理程序在处理WEB请求时的速度比较的更多相关文章

  1. ASP.NET MVC API与JS进行POST请求时传递参数 -CHPowerljp原创

    在API前添加    [HttpPost] 表示只允许POST方式请求 [HttpPost] public IHttpActionResult Get_BIGDATA([FromBody]Datas  ...

  2. 【翻译】Scriban README 文本模板语言和.NET引擎

    scriban Scriban是一种快速.强大.安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式 Github https://github.com/lunet-io/sc ...

  3. C语言和C++中动态申请内存

      在C语言和C++的动态内存的使用方法是不同的,在C语言中要使用动态内存要包含一个头文件即 #include<malloc.h> 或者是#include<stdlib.h>  ...

  4. C语言和C++篇

    C语言和C++篇 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的.想想我们至今的代码,到底生成和使用了多少String!标题上所罗列的语言,可以看成 ...

  5. c语言和java的区别

    今晚读了一下c程序设计语言,这是一本经典书籍,发现C语言和java有很多是相同的,毕竟java是由c语言进化来的. 我大概从我自己的思考来谈谈不同点 1.c语言是面向过程,主要单位是函数,变量和函数的 ...

  6. CHENGDU1-Python编程语言和PEP8规范

    CHENGDU1-Python编程语言和PEP8规范 PEP8规范6条? 答:PEP8规范说白了就是一种规范,可以遵守,也可以不遵守,遵守PEP8可以让代码的可读性更高. 代码编排:---缩进,4个空 ...

  7. 从C,C++,JAVA和C#看String库的发展(一)----C语言和C++篇

    转自: http://www.cnblogs.com/wenjiang/p/3266305.html 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的 ...

  8. 大数据工具比较:R 语言和 Spark 谁更胜一筹?

    本文有两重目的,一是在性能方面快速对比下R语言和Spark,二是想向大家介绍下Spark的机器学习库 背景介绍 由于R语言本身是单线程的,所以可能从性能方面对比Spark和R并不是很明智的做法.即使这 ...

  9. c语言和java以及安卓和苹果

    苹果手机是本地,没有中间环节,速度快,基于Linux系统 安卓是通过虚拟机,影响速度 就像c语言和java c适用于架构小的地方,因为直接编译运行 而java用于架构比较大的地方,启动慢,启动之后效率 ...

随机推荐

  1. 【docker】docker部署spring boot服务 选择配置文件启动

    默认启动命令: docker run --name swapping -itd --net=host -v /etc/localtime:/etc/localtime:ro -v /etc/timez ...

  2. Linkedin工程师是如何优化他们的Java代码的

    http://greenrobot.me/devpost/java-faster-less-jvm-garbage/ Linkedin工程师是如何优化他们的Java代码的 最近在刷各大公司的技术博客的 ...

  3. 浴血黑帮第三季/全集Peaky Blinders迅雷下载

    英文译名 Peaky Blinders (第2季) (2014-8月回归)BBC.本季看点:<浴血黑帮>由<东方的承诺>.<奇异的恩典>编剧斯蒂文·奈特打造,讲述了 ...

  4. ViewFlipper的简单用法

    ViewFlipper和ViewPager挺像的,都是一个view容器.内部可以添加多个view,只是viewpager可以通过左右滑动来切换view,而viewFlipper则没有这个功能,所以需要 ...

  5. Set a Room Mailbox to Show Details of a Meeting in its Calendar – Office 365

    You may notice that meetings with a ‘Room’ mailbox will by default only show a “Busy” status. Many, ...

  6. tensorflow语义分割api使用(deeplab训练cityscapes)

    安装教程:https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/installation.md citysca ...

  7. oracle的!=与<>

    效果是完全一样的 Oracle中有三个不等符号的,分别是: != ^= <>

  8. 人生就要挑战新难度——记zxing的深化

    首先,我们来看看zxing一些基本介绍. ZXing是一个开放源码的,用Java实现的多种格式的1D(注1d条码主要常见的条码) /2D条码(主要是二维码) 图像处理库,它包含了联系到其他语言的端口. ...

  9. git pull fails “unable to resolve reference” “unable to update local ref”

    问题 由于有人rebase了分支,或者不知道怎么搞的.其他人拉取代码的时候,发现拉不下来. >git fetch error: cannot lock ref 'refs/remotes/ori ...

  10. Android -- DecorView

    DecorView 开发中,通常都是在onCreate()中调用setContentView(R.layout.custom_layout)来实现想要的页面布局.页面都是依附在窗口之上的,而Decor ...