首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA: 64位OSes / VBA7的性能优化变量使用率

VBA: 64位OSes / VBA7的性能优化变量使用率
EN

Stack Overflow用户
提问于 2022-08-02 23:36:14
回答 1查看 72关注 0票数 0

我读过一些关于VBA性能优化的文章,并了解到在32位VBA应用程序中,内存使用优化与性能优化是有区别的。

内存优化的一个例子是使用适合您的应用程序的最小变量(例如使用Int而不是长浮点数)。

为了提高性能,它似乎要将可变大小的位与操作系统相匹配,这样它就不必进行从8位到32位的“遮罩下”的任何类型转换。

我是否可以假设此逻辑扩展到运行VBA7的Excel 365的64位版本?Ie,LongLong (64位)是否是以内存使用为代价处理整数的最优性能优化方法,而不是Long或Int?

编辑:有一个答案here显示了在64位操作系统上测试的结果,答案是使用Longs,但是优化并不能节省多少时间(13s,超过10亿次操作)。

EN

回答 1

Stack Overflow用户

发布于 2022-08-02 23:54:12

在64位标准整数大小是32位(和有符号)。内存寻址为64位(且未签名)。CPU对两者都进行了优化。

程序优化速度与内存的主要方式是将函数解压缩为内联代码,如果可以的话。函数调用很慢。

x64比Windows上的x32具有更快的调用约定。在x32中,所有参数都在堆栈上传递,这是一个比寄存器慢得多的内存区域。在x64中,它们在任何可能的情况下都会在寄存器中传递,即如果寄存器用完了,它将在堆栈上传递其余的寄存器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73214816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档