Golang Go语言性能怎么样
为什么我写了一个死循环,结果在 windows 下 cpu 利用率只有 7%......
Golang Go语言性能怎么样
刚接触,不是写个 c 死循环 cpu 都接近 100 吗?
更多关于Golang Go语言性能怎么样的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
萌新想问一句 死循环能测性能吗
try this:<br>package main<br><br>import (<br> "runtime"<br> "sync"<br>)<br><br>func main() {<br> runtime.GOMAXPROCS(runtime.NumCPU())<br> wg := sync.WaitGroup{}<br> for i := 0; i < runtime.NumCPU(); i ++ {<br> wg.Add(1)<br> go func() {<br> for {<br><br> }<br> wg.Done()<br> }()<br> }<br> wg.Wait()<br>}<br>
go 性能和 java 差不多
这个是多线程吗?单线程怎么提高 cpu 利用率,我觉得 go 不应该这么低啊
也很低还是都很高?我这边 c 死循环就非常卡顿了,go 只有 7
还有难道是 windows 的锅?
都很高。
不清楚和系统有没有关系。
很难受感觉用了假的 go 语言
发现用 c 也一样,可能是系统问题吧:)
编译器会优化…你要上代码或汇编才知道
编译器发现你这是个没用的死循环,直接给优化没了……
现在的编译器、操作系统、CPU 会做很多优化,很多时候不能看表面。
另外,完成同一个任务,CPU 利用率低才是效率高。7%的利用率就完成了别人需要 100%利用率才能完成的任务,你应该高兴才对。
死循环也谈不上优化吧…而且这种没有 io 瓶颈的计算还是 cpu 占用高点好吧…主要占用连 10 都不到…
死循环判断性能。。能不能再荒谬一点。
不是评判性能,只是看一下死循环能利用多少 cpu
你看下是吃了一个核还是总的 cpu
我看了一下没有一个核超过 20
8 核 16 线程的 cpu 吧
什么都没有的空循环,编译器会给优化吧。写个算哈希值的挖矿算法的循环试试吧。
你这 CPU 是 6 核 12 线程的吧 ? 8700 ?
https://benchmarksgame.alioth.debian.org/ 个人认为测试的还是比较全面
前三位基本上 C,C++,Rust
你的死循环只会在一个核上执行,因为 Windows 的 CPU 监测是针对所有的 CPU,在多核情况下 Windows 单核跑满也不会导致 CPU 使用率 100%的
好像是的:)但是一个核都没跑满,感觉有点奇怪
我刚刚在 Mac 上面试了下死循环是能导致 100%的 CPU 使用率的
https://imgur.com/fBkIjib
https://imgur.com/O9CUCNV
简单点说,5 台 java 服务器,1 台 go 服务器搞定。
对,我也是在 mac 上测试的,
不至于这么夸张吧
至少内存上是这样,我遇到过同样功能内存差 20 倍
的确 go 内存用的是真少,不涉及 io 的话,感觉性能与 c 相当(自我感觉)
大多数情况下,java 除非已经 jit 了,才可能和 go 差不多
任何一门语言都是能导致 CPU 100%的,事实上以下 Python 将导致 CPU 100%python<br>while 1:<br> i = 0<br>
因为没有任何 IO 操作的程序将会一直使用 CPU 而不阻塞。
是否能够让 CPU100%不是判断一门语言是否高效的正确方法,判断一门语言是否高效可以使用以下两方面来判断:
1. CPU 的使用是否高效
2. 内存使用是否高效
Go 语言因为没有虚拟机,所以同等数量的指令相较于 Java 和 Python 可以做更多的事情,同样是因为虚拟机的存在,所以 Java 在运行时要占用更多的内存。
除此之外,对于网络 IO 密集型程序,Go 提供了协程这个解决方案,这也是 Go 语言性能优秀的一部分。对于目前很多的应用而言,其主要瓶颈在于 IO,Go 语言解决了这方面的问题。
受教了,但是 python 理论上好像不能 100%,具体忘记了…其他语言理论上应该可以达到
你是想问为啥你的代码不能把 cpu 跑满吧?
顶 37, 语言性能的好坏是指同样软硬件资源下,对资源的使用效率, 假设 java 能单位时间处理 100 个请求,而 c 能处理 200, 可以说 c 更高效一点。 cpu 啥语言都能跑满的。
对啊,死循环应该能跑到,就算不到 100,但是个位数也太低了
想烧坏电脑请浇油点火💀
直接上代码,莫不是在死循环里面 Println 了吧?
空的死循环
好厉害啊~牛皮吹的好厉害啊
针对Golang(Go语言)的性能问题,以下是我的专业解答:
Go语言性能卓越,主要体现在以下几个方面:
- 编译速度快:Go语言采用单一编译单元、并行编译和增量编译等技术,编译速度非常快,能显著提高开发效率。
- 执行效率高:Go语言生成的机器代码执行效率高,接近于C/C++,适合开发高性能应用。
- 并发处理强大:Go语言内置轻量级的goroutine和channel机制,使得并发编程变得简单且高效,能够充分利用多核处理器的优势。
- 内存管理高效:Go语言使用垃圾回收机制来管理内存,减少了内存泄漏和悬挂指针等问题,同时提供了内存分析工具帮助开发者优化内存使用。
此外,Go语言还具有丰富的标准库、跨平台支持以及性能稳定等特性。其标准库涵盖了网络编程、文件处理、加密解密、并发编程等各个方面,跨平台支持则使得开发者可以在不同平台上运行相同的代码。
综上所述,Go语言在性能方面表现优异,特别适用于高并发、高性能的场景,如网络编程、服务器开发等。对于想要提升程序性能的开发者来说,Go语言无疑是一个值得考虑的选择。