def odd():
for i in xrange(0, 100):
if i % 2 == 1:
print i
我有这个小功能。我想知道:
- 如果有办法让它消耗更少的内存?
- 您可以使用哪些工具和技术来有效地衡量和改善内存消耗?
看了以下问题后,我想到了这个问题:奇数
def odd():
for i in xrange(0, 100):
if i % 2 == 1:
print i
我有这个小功能。我想知道:
看了以下问题后,我想到了这个问题:奇数
Stackoverflow最近有一个关于内存消耗测量的答案。
至于循环的内存消耗,它可以忽略不计,并且不依赖于范围的上限,因为xrange()
实际上存储的内容并不比它将返回的下一个值多得多。
不确定这个问题是否实际上是关于内存消耗和一种提高效率的算法,或者它是否与特定语言相关联以及它如何在后台执行操作。
如果它是关于内存消耗和改进解决方案的算法,一个好的解决方法是使用带有一些简单条件的递归(或迭代)解决方案。
示例而不是遍历循环中的 100 个数字(我不是 python 开发人员,所以我用 javascript 编写这个简单的解决方案,可以在 chrome 的控制台中轻松测试)你可以尝试这样的事情:
var iteration = 0;
var odd = function(val,max){
iteration++;
//base case
if ( val > max ) return;
if ( val % 2 == 1 ){
console.log(val);
odd(val+2,max);
}else odd(val+1,max);
}
odd(0,100);
console.log("Total iterations: "+iteration);
它导致只经历 52 次迭代而不是 100 次。