当前位置: 首页 > news >正文

哈尔滨网站建设王道下拉強简历制作网址

哈尔滨网站建设王道下拉強,简历制作网址,郑州网站建设华久,安徽省驻房城乡建设官方网站net8正式版出来两个月#xff0c;现在性能到底如何呢#xff0c;做个简单的例子和其他语言比较一下#xff0c;测试内容是查找1000000以内的质数#xff0c;代码不多#xff0c;但包含了循环计算和Math库函数调用#xff0c;直观的看一下语言之间差距是多少#xff0c;心…net8正式版出来两个月现在性能到底如何呢做个简单的例子和其他语言比较一下测试内容是查找1000000以内的质数代码不多但包含了循环计算和Math库函数调用直观的看一下语言之间差距是多少心里有个底测试机是笔记本surface book 2 intel i7 有个四五年了不过还能跑 单线程篇 首先来看看google的王牌语言golang语法简单但性能号称不输C先看一下go 1.20.2 package mainimport (fmtmathtime )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(fThe number of prime numbers less than {num} is: {result}) print(fExecution time: {time_elapsed*1000:.4f}ms) 看看普通模式跑跑要多少毫秒 竟然3秒7 是golang10倍然后让我们开了jit再跑一次 看起来 并没有差前两个语言很多 然后打包exe再执行一次 差强人意哈哈 单线程性能就这样了参考一下 。 并行计算篇 测试完上面的各个语言粉丝说不服根本没有发挥出优势结果并不能说明真正的快慢那我又重新写了一下这三个语言的并行计算方法比较这种情况到底谁快结果可能你想不到。 首先还是golang 这次采用routine协程方式计算代码贴上 package mainimport (fmtsynctime )func isPrime(num int) bool {if num 1 {return false}for i : 2; i*i num; i {if num%i 0 {return false}}return true }func countPrimes(start, end int, resultChan chan int, wg *sync.WaitGroup) {defer wg.Done()count : 0for i : start; i end; i {if isPrime(i) {count}}resultChan - count }func main() {startTime : time.Now()num : 1000000goroutines : 10results : make(chan int, goroutines)var wg sync.WaitGroupwg.Add(goroutines)step : num / goroutinesfor i : 0; i goroutines; i {start : i * stepend : (i 1) * stepif i goroutines-1 {end num}go countPrimes(start, end, results, wg)}wg.Wait()close(results)total : 0for result : range results {total result}endTime : time.Now()fmt.Printf(Total number of primes: %d\n, total)fmt.Printf(Execution time: %v\n, endTime.Sub(startTime)) } 编译运行一下试试 golang 一下就赶上来了成绩不错恭喜恭喜速度还可以就是写法会麻烦了一些 看看net8 代码先上来记得要编译release版本 using System; using System.Diagnostics;namespace FindPrime {class Program{static int CountPrimes(){const int maxNumber 1000000;int primeCount 0;bool[] isPrime new bool[maxNumber 1];for (int i 2; i maxNumber; i){isPrime[i] true;}Parallel.For(2 , maxNumber 1, i {for (int j 2; j Math.Sqrt(i); j){if (i % j 0){isPrime[i] false;break;}}});for (int i 2; i maxNumber; i){if (isPrime[i]){primeCount;}}return primeCount;}static void Main(string[] args){Stopwatch timer Stopwatch.StartNew();int result CountPrimes();timer.Stop();Console.WriteLine($The number of prime numbers is: {result});Console.WriteLine($Execution time: {timer.ElapsedMilliseconds:F4} ms);}} }跑起来看看貌似负优化其实之前在amd ryzen cpu上并行是比单线程快的这个优化的不稳定 最后上boss我们的python大佬要登场了看看科学界的宠儿到底怎么样 import numpy as np import timestart_time time.perf_counter()# 创建包含所有整数的数组 numbers np.arange(2, 1000000)# 创建布尔数组初始化为 True is_prime np.ones(len(numbers), dtypebool)# 筛选法标记非质数 for i in range(2, int(np.sqrt(1000000)) 1):if is_prime[i - 2]:is_prime[i * 2 - 2::i] False# 获取所有质数 primes numbers[is_prime]# 打印质数 end_time time.perf_counter() time_elapsed end_time - start_timeprint(fThe number of prime numbers is: {len(primes)}) print(fExecution time: {time_elapsed*1000:.4f}ms) 不编译exe了直接脚本跑结果出来了快golang10倍所以说数值计算还是来python吧没啥说的 散会
http://www.pierceye.com/news/749877/

相关文章:

  • 云主机和云虚拟主机优化教程网站推广排名
  • 佛山网站建设开发二维码生成器永久免费版下载
  • 衡水网站建设衡水网站建设网站建设南宁
  • 汽车网站推广策划方案wordpress又拍云cdn伪静态
  • 用dw建立网站网站设计师要学什么
  • 网站模块建设中二级医院做网站
  • 求大神帮忙做网站云网站后台
  • 保护稀有动物网站建设策划书凡科建站多少钱
  • 怎么通过做网站来赚钱坪山网站建设方案
  • 网站架构设计师工作内容传媒在线网站模板
  • 重庆哪里有做网站的公司互联网公司网站建设ppt
  • 海南的网站建设公司wordpress最新版中午
  • 网站推广需要域名迁移iis7建设网站
  • 网站建设实践报告小结网页版传奇服务端
  • 安顺住房和城乡建设部网站做网站用什么开发工具
  • 网站域名后缀意义深圳买门的网站建设
  • 遵义花果园网站建设wordpress关闭rss功能
  • 建设网站需要哪些人做网站的猫腻
  • 番禺网站建设效果深圳app制作开发公司排名
  • 临沂品牌网站推广做关于时尚网站的目的
  • 建设银行网站 无法访问上海网站制作开发公司
  • windows网站建设教程网络流量统计工具
  • 网站被入侵后需做的检测 1优易网络公司员工发展
  • 吉安网站建设jxthw大型网站技术方案
  • 网站开发找哪个专门帮做ppt的网站吗
  • 网站关键词词库一级做ae视频教程
  • wordpress建站教程入门云南文山地图
  • 网站管理助手+建设中seo网站提交
  • 网站推广位怎么设置重庆网站seo好不好
  • 中小企业网站建设框架网易博客导入wordpress