net8 golang python性能比较

2024-01-05 01:52
文章标签 python golang 比较 性能 net8

本文主要是介绍net8 golang python性能比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

net8正式版出来两个月,现在性能到底如何呢,做个简单的例子和其他语言比较一下,测试内容是查找1000000以内的质数,代码不多,但包含了循环计算和Math库函数调用,直观的看一下语言之间差距是多少,心里有个底,测试机是笔记本surface book 2 intel i7 有个四五年了,不过还能跑

首先来看看google的王牌语言golang,语法简单但性能号称不输C++,先看一下go 1.20.2

package mainimport ("fmt""math""time"
)func isPrime(num int) bool {if num <= 1 {return false}for i := 2; i <= int(math.Sqrt(float64(num))); i++ {if num%i == 0 {return false}}return true
}func countPrimes(n int) int {count := 0for i := 2; i < n; i++ {if isPrime(i) {count++}}return count
}func main() {num := 1000000startTime := time.Now()result := countPrimes(num)endTime := time.Now()fmt.Printf("The number of prime numbers less than %d is: %d\n", num, result)fmt.Printf("Execution time: %v\n", endTime.Sub(startTime))
}

编译之后看看耗时是多少

然后看看net6

using System;
using System.Diagnostics;namespace FindPrimeNet6
{class Program{static bool IsPrime(int num){if (num <= 1){return false;}for (int i = 2; i <= Math.Sqrt(num); i++){if (num % i == 0){return false;}}return true;}static int CountPrimes(int n){int count = 0;for (int i = 2; i < n; i++){if (IsPrime(i)){count++;}}return count;}static void Main(string[] args){int num = 1000000;Stopwatch timer = Stopwatch.StartNew();int result = CountPrimes(num);timer.Stop();Console.WriteLine($"The number of prime numbers less than {num} is: {result}");Console.WriteLine($"Execution time: {timer.ElapsedMilliseconds:F4} ms");}}
}

运行一下看看

然后重头来了net8 开启aot怎么样呢

看来速度没提升,应该是启动速度提高了

然后我们再看看大家心目中最慢的python,装了3.11.7版本

 

#import numba
import math
import time#@numba.jit
def is_prime(num):if num <= 1:return Falsefor i in range(2, int(math.sqrt(num)) + 1):if num % i == 0:return Falsereturn True#@numba.jit
def count_primes(n):count = 0for i in range(2, n):if is_prime(i):count += 1return countnum = 1000000
start_time = time.perf_counter()
result = count_primes(num)
end_time = time.perf_counter()time_elapsed = end_time - start_timeprint(f"The number of prime numbers less than {num} is: {result}")
print(f"Execution time: {time_elapsed*1000:.4f}ms")

看看普通模式跑跑要多少毫秒

竟然3秒7 是golang10倍,然后让我们开了jit再跑一次

看起来 并没有差前两个语言很多

然后打包exe再执行一次 差强人意哈哈 就这样吧,将就用,希望能给大家一个参考

这篇关于net8 golang python性能比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/571286

相关文章

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读