python – C中的一个足够大的problemSize需要0运行时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – C中的一个足够大的problemSize需要0运行时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1569字,纯文字阅读大概需要3分钟。
内容图文
![python – C中的一个足够大的problemSize需要0运行时间](/upload/InfoBanner/zyjiaocheng/704/0845344bc56e4100867f84a4913a4b8a.jpg)
这段代码用于演示算法的复杂性和测量算法的运行时间来自一本书FUNDAMENTALS OF PYTHON: FROM FIRST PROGRAMS THROUGH DATA STRUCTURES
"""
File: timing1.py
Prints the running times for problem sizes that double,
using a single loop.
"""
import time
problemSize = 10000000
print "%12s%16s" % ("Problem Size", "Seconds")
for count in xrange(5):
start = time.time()
# The start of the algorithm
work = 1
for x in xrange(problemSize):
work += 1
work -= 1
# The end of the algorithm
elapsed = time.time() - start
print "%12d%16.3f" % (problemSize, elapsed)
problemSize *= 2
这段代码运作良好,我正在尝试用C进行类似的试验.这是代码(snippet_2)
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
void functiona()
{
long long number = 0;
long long problemSize = 100000000000;
for( long long i = 0; i < problemSize; ++i )
{
for(long long j = 0; j < problemSize; j++)
{
for(long long k = 0; k < problemSize; k++)
{
for(long long l = 0; l < problemSize; l++)
{
for(long long l = 0; l < problemSize; l++)
{
number++;
number--;
}
}
}
}
}
}
int main()
{
high_resolution_clock::time_point t1 = high_resolution_clock::now();
functiona();
high_resolution_clock::time_point t2 = high_resolution_clock::now();
auto duration = duration_cast<microseconds>( t2 - t1 ).count();
cout << duration;
return 0;
}
我猜problemSize虽然足够大,但是snippet_2输出0.
我错过了什么?
解决方法:
对代码进行一些修改,以便编译器不会优化您的基准测试.
void function()
{
long long number = 0;
long long problemSize = 100;
long long res = 0;
for( long long i = 0; i < problemSize; ++i )
{
number++;
res += number;
number--;
}
cout << res << endl;
}
内容总结
以上是互联网集市为您收集整理的python – C中的一个足够大的problemSize需要0运行时间全部内容,希望文章能够帮你解决python – C中的一个足够大的problemSize需要0运行时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。