请问可以讲解一下inline和register的用法吗?
  • 板块学术版
  • 楼主6vz5ukvd
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/1/1 06:58
  • 上次更新2023/10/28 13:13:51
查看原帖
请问可以讲解一下inline和register的用法吗?
657638
6vz5ukvd楼主2022/1/1 06:58

刚才看见有人说我不应滥用inlineregister

请问可以告诉我,我的理解什么地方有错误吗?

我理解的inline,是定义函数在调用时不使用call/mov/ret指令来压栈、跳转/设置返回值/弹栈、跳转回去,而是直接把被调用的函数嵌入在调用它的函数中,来节省时间。

我理解的register,是用来使变量储存在寄存器中,来在让CPU在频繁读写中不用在内存或Cache上浪费时间。

我对用或不用inlineregister的测试结果:

With inline and register   Without

Subtask #0                 Subtask #0
#1                         #1
4ms/684.00KB               3ms/696.00KB
AC                         AC
#2                         #2
212ms/4.95MB               248ms/4.98MB
AC                         AC
#3                         #3
3ms/680.00KB               3ms/684.00KB
AC                         AC
#4                         #4
3ms/680.00KB               3ms/808.00KB
AC                         AC
#5                         #5
10ms/680.00KB              11ms/688.00KB
AC                         AC

Subtask #1                 Subtask #1
#6                         #6
21ms/868.00KB              24ms/836.00KB
AC                         AC
#7                         #7
50ms/1.55MB                59ms/1.46MB
AC                         AC
#8                         #8
77ms/2.69MB                87ms/2.70MB
AC                         AC
#9                         #9
153ms/4.98MB               172ms/4.98MB
AC                         AC
#10                        #10
186ms/4.95MB               213ms/4.98MB
AC                         AC

(6607311066073237

2022/1/1 06:58
加载中...