go java .net_go、java、netcore性能测试记录

该博客对Go、Java、.NET三种语言进行性能测试,在Windows和Linux CentOS 7平台上循环10万次输出打印“hello world”,记录了各语言占用内存、包大小、耗时等信息,还给出了各语言的代码示例及发布后的目录情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试逻辑:

循环10万次输出打印hello world

测试平台:windows

bcd6612d0f5c8ac8815fcd643b46e428.png

测试结果

语言占用内存包大小耗时

go

5324k

可执行文件:2172k

平均8502毫秒

java

175326k

字节码文件:2k

平均8537毫秒

dotnetcore

3612k

打包发布:65.4m

平均8371毫秒

截图介绍

go: 直接运行main.exe

代码:

package main

import (

"fmt"

"os"

"os/signal"

"syscall"

"time"

)

func main() {

t1 := time.Now() // get current time

//logic handlers

for i := 0; i < 100000; i++ {

fmt.Println("hello world")

}

elapsed := time.Since(t1)

fmt.Println("App elapsed: ", elapsed)

sig := make(chan os.Signal, 2)

signal.Notify(sig, syscall.SIGTERM, syscall.SIGINT)

}

发布后的目录

9f142554252f751cc5ba26dfb6fc323f.png

java: 运行编译后的字节码文件 java HelloWorld

代码

import java.io.IOException;

public class HelloWorld {

public static void main(final String[] args) throws IOException {

final long time1 = System.currentTimeMillis();

int i = 0;

for (; i < 100000; i++) {

System.out.println("hello world");

}

final long time2 = System.currentTimeMillis();

System.out.println("当前程序耗时:" + (time2 - time1) + "ms");

System.in.read();

}

}

编译后的目录

ab0734a55920977bc17747567e6f91fa.png

dotnetcore: 直接运行netcore_prj.exe

代码

using System;

using System.Diagnostics;

using System.Threading.Tasks;

using System.Threading;

namespace netcore_prj

{

class Program

{

static async Task Main(string[] args)

{

var watch = new Stopwatch();

watch.Start();

for (var i = 0; i < 100000; i++)

Console.WriteLine("hello world");

watch.Stop();

Console.WriteLine($"循环100000次Say Hello World,用时:{watch.ElapsedMilliseconds}ms");

Console.ReadLine();

}

}

}

发布后的目录

9142383de7b710542cf5446e9973b23d.png

测试平台:linux centos7 (10.0.1.7)

测试结果

语言虚拟内存物理内存包大小耗时

go

100M

976

2104k

平均170ms

java

4647M

33660

4k

平均335ms

dotnetcore

2712M

18988

110m

平均144ms

打包到以下的测试目录:

c9abf302558093fa82ca0cc73dbfcc59.png

go: 直接运行 nohup ./go_main &

7d043aed1ed522a5e9716788ccbc9c0b.png

java: 运行编译后的字节码文件 nohup java HelloWorld &

ffcc694db4aa059780896ad32fa99f43.png

dotnetcore: 进入netcore目录运行 nohup ./netcore_prj &

fd844dc049e83228c00956caa84f2fdf.png

PID:进行的标识号

USER:运行此进程的用户

PRI:进程的优先级

NI:进程的优先级别值,默认的为0,可以进行调整

VIRT:进程占用的虚拟内存值

RES:进程占用的物理内存值

SHR:进程占用的共享内存值

S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态

%CPU:该进程占用的CPU使用率

%MEM:该进程占用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间

COMMAND:进程启动的启动命令名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值