c++ - g++生成没有push和pop的汇编代码
问题描述
我发现 g++ 编译器在没有任何推送/弹出指令的情况下几乎不会生成汇编代码。它仅在进入/退出功能时使用。每次它在堆栈中放置字节时,它都会执行 2 或 3 条指令,例如:
movl foo, %eax
subl $4, %esp
movl %eax, (%esp)`
安装的只是pushl foo
. 这有什么原因吗?是更快还是什么?
谢谢你。
解决方案
推荐阅读
- python - 如何在加载大型库时加速 Pytest 启动(太慢)
- angular - Angular - 测试/模拟使用 rxjs fromEvent 的订阅
- c++ - 复制构造函数在复制 std::vector 时工作得更快
比 std::copy - ios - 有没有办法下载 USDZ 并将其放置在现实套件场景中?
- javascript - SonarQube - 使用 sonar-project.properties 覆盖质量配置文件
- flutter - 颤振:预期类型错误的值。传入字符串,小部件期待别的东西
- elasticsearch - elasticsearch 通过减去两个数字字段进行排序
- objective-c - 在 Objective-c 中使用 Earlgrey 的 IOS Programmatic Tap
- firebase - 使用 Firebase 消息打开应用时 Flutter 显示通知
- javascript - Cookies 在 HTTP 页面之间工作,而不是在 HTTPS 页面之间工作