news 2026/5/6 6:20:43

不同编程语言编绎的EXE执行效率大比拼,10亿次求余数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
不同编程语言编绎的EXE执行效率大比拼,10亿次求余数

10亿次求余模(余数)就像是解析运行,
PYTHON运行要140秒,
VBS解析每次数据全转成变体类型,要136秒
2026版ARM相当于V8 JS引挚,运行速度达到了1.5秒
和VC++编绎的EXE速度一样了

脚本是这样的,python要140秒,VBS 136秒,这2个效率是真差
脚本就是直接可以代码运行,但PYTHON以前没有编绎EXE功能,可以编绎的速度就提高到1.8秒了,AOT生成静态EXE,.NET CORE这些就是快

Dim START As Long, UsedTime As Long 'VB6代码: Dim i As Long Dim C As Long Dim v As Long v = 10 ^ 9 '10亿 START = timeGetTime For i = 1 To v If i Mod 7 = 0 Then C = C + 1 Next UsedTime = timeGetTime - START Text1.Text = "VB6计算10亿个数里找能被7整数的数字" & vbCrLf & "用时:" & (UsedTime / 1000) & "秒" & vbCrLf & "找到:" & C & "个7的倍数"
.net代码: Stopwatch clock = new Stopwatch(); clock.Start(); int count = 0; int number = 0; while (number++ < 1000000000) { if (number % 7 == 0) { count++; } } clock.Stop(); Console.WriteLine($"找到${count}个数,耗时{clock.Elapsed}"); Console.Read();

关于 VB6 中Mod运算的底层原理 + CPU 指令 完整解答

我直接给你讲最底层、最真实、最准确的原理,不绕弯子:

1. VB6 里的i Mod 7 = 0到底在算什么?

Mod就是求余数i Mod 7= 整数i除以7之后剩下的余数

你代码里的逻辑:

vb

If i Mod 7 = 0 Then C = C + 1

等价数学含义:判断 i 是不是 7 的整数倍


2. 底层 CPU 到底用什么指令计算?

答案:

CPU 有专门的除法指令,余数会自动算出来,Mod 就是直接拿这个余数。没有专门叫MOD的指令,但除法指令会同时返回 商 和 余数


3. 不同 CPU 架构的真实指令

① x86 /x86_64(你电脑现在用的 CPU)

指令:DIV(无符号除法)IDIV(有符号除法)

执行时:

plaintext

被除数 → AX / DX:AX 除数 → 通用寄存器

结果:

  • 商 → AL / AX / EAX
  • 余数 → AH / DX / EDX

VB6 的Long是 32 位有符号整数 → 用IDIVi Mod 7就是直接取IDIV 执行后 EDX 里的值

② ARM 架构(手机 / 嵌入式)

指令:UDIV/SDIV但 ARM 不会自动返回余数,需要用公式:

plaintext

余数 = 被除数 - 除数 × 商

VB6 编译到 ARM 时会自动生成这行计算。


4. 关键结论(最重要)

  1. Mod不是复杂算法,就是 CPU 除法的副产品
  2. 现代 CPU 硬件直接支持求余,速度极快
  3. VB6 的 Mod 就是直接调用 CPU 除法指令取余数
  4. 你那行i Mod 7本质 = 1 条 IDIV 指令

5. 为什么你那 10 亿次循环跑得慢?

不是Mod慢!而是:

  • VB6解释执行(不是编译成机器码全速跑)
  • 循环本身开销巨大
  • 10 亿次迭代在 VB 里本身就极慢

如果是 C++ / 汇编 跑同样逻辑:10 亿次i Mod 7只需要几十毫秒


6. 超简版总结(方便记忆)

  • Mod=求余数
  • CPU没有专门 MOD 指令
  • 但 CPU除法指令会自动算出余数
  • VB6 的Mod就是直接拿除法后的余数

最终一句话总结

Mod 运算的核心就是 CPU 除法指令自带的余数,硬件原生支持,速度极快。

如果你愿意,我还能给你:

  • 把你这段 VB6 代码优化到 0.1 秒完成(数学公式法,根本不用循环)
  • 或者给你看VB6 编译后的汇编指令,亲眼看到IDIV
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 19:19:59

百度网盘秒传脚本完整教程:三步实现永久文件分享

百度网盘秒传脚本完整教程&#xff1a;三步实现永久文件分享 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 在文件分享日益频繁的今天&#xff0c;你是否遇…

作者头像 李华
网站建设 2026/4/12 2:14:03

如何防止CAD图纸泄密?6个超实用的图纸防泄密方法分享,快码住了

在制造、建筑及设计行业&#xff0c;一张凝结了团队数月心血的CAD图纸&#xff0c;往往是企业的核心资产。然而&#xff0c;随着人员流动频繁、远程办公普及以及U盘、网络传输的便捷化&#xff0c;图纸泄密的风险也达到了前所未有的高度。一旦核心图纸流向竞争对手&#xff0c;…

作者头像 李华
网站建设 2026/4/10 13:37:39

SWE-bench实施指南:构建真实世界代码修复的评估生态

SWE-bench实施指南&#xff1a;构建真实世界代码修复的评估生态 【免费下载链接】SWE-bench SWE-bench: Can Language Models Resolve Real-world Github Issues? 项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench 实施准备&#xff1a;从理论验证到生产部…

作者头像 李华
网站建设 2026/4/11 19:52:31

终极提速方案:百度网盘macOS限速破解插件完全指南

终极提速方案&#xff1a;百度网盘macOS限速破解插件完全指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘蜗牛般的下载速度烦恼吗&a…

作者头像 李华
网站建设 2026/4/11 14:11:43

蒙特卡洛VaR在R中总超时?深度剖析rng种子复现性、并行粒度与GPU加速兼容性(附证监会备案级审计日志模板)

第一章&#xff1a;蒙特卡洛VaR在R中总超时&#xff1f;深度剖析rng种子复现性、并行粒度与GPU加速兼容性&#xff08;附证监会备案级审计日志模板&#xff09;蒙特卡洛VaR计算在R中频繁超时&#xff0c;根本原因常被误判为“样本量过大”&#xff0c;实则源于三重耦合瓶颈&…

作者头像 李华