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. How To Create A Local Repository For SUSE Linux

    原文地址:http://candon123.blog.51cto.com/704299/1009294/ As you know,you can use the yum command to inst ...

  2. Android Socket通信详解

    一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客 ...

  3. 通过layer-list自定义EditText背景

    假设activity的背景是白色,第一层也(就是最底层)是绿色:第二次是白色,但是距离底部有一段小偏移,目的是为了做出文本框两边的小勾:第三层也是白色,但是它距离底部和左右两边都有一定距离.通过三层配 ...

  4. osx的du以字节计算

    https://stackoverflow.com/questions/5794437/difference-in-size-shown-by-du-command-and-get-info-on-m ...

  5. SVG.js Marker标记和自定义标签

    一.SVG.Marker 添加标记 SVG.Marker 标记可以被添加到一个线,折线的各点,多边形和路径.有三种类型的标记:开始,中间和结束.如果开始表示第一个点,则结束中间的最后一点和中间点. v ...

  6. Ubuntu系统重启后/etc/resolv.conf内容丢失的解决方案

    通过resolvconf实现配置 resolvconfig应用可以实现DNS信息管理,可以通过下面的应用来安装此组件: sudo apt-get install resolvconf 创建/etc/d ...

  7. UML类图和时序图

    这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...

  8. [转]用国内软件源为Ubuntu的apt-get提速方法

    FROM : http://www.jb51.net/os/Ubuntu/45293.html 刚装好Ubuntu系统之后根据需要还要安装一系列的软件,最省心的办法就是通过apt-get来进行   默 ...

  9. 使用idea 在springboot添加本地jar包的方法本地运行有效,一旦需要打jar就会报错,这就需要在

    https://blog.csdn.net/huxiaodong1994/article/details/80702278 1.首先在与src同级的目录下新建一个lib目录,然后将本地jar包放在li ...

  10. Visual Studio 2013中引入Web Service的简单方法visual studio 引用 wsdl

    http://blog.csdn.net/wangzhongbo_24/article/details/49954191 Web Service有三种表示方式 三种方式分别为WSDL.Endpoint ...