为什么用int替换long long可以提高性能?

时间:2016-07-14 21:31:51

标签: c++ performance

对某些变量使用long long时,Codeforces上的某些任务会导致“TLE”(超出时间限制),而将其更改为int会导致“已接受”。

该问题如何影响代码?编译器如何处理它?使用int时为什么代码更快?

1 个答案:

答案 0 :(得分:6)

这在很大程度上取决于平台。以下是使用long long可能会降低代码速度的两个实例:

  1. 如果CPU不是64位(假设long long是64位且int是32位),那么执行添加等操作会涉及更多工作。
  2. 如果您正在处理大量数据,则从int更改为long long会产生很大影响,因为数据的数量是原来的两倍。将数据从磁盘或ram拉到CPU缓存是很昂贵的,如果数据类型是两倍大,CPU必须更频繁地请求数据。