s*********d 发帖数: 19 | 1 调用一个2层的for循环,次数大概在400×1000左右,
循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
接将结果写入文件
开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
大概什么地方占用了系统资源? |
A*g 发帖数: 102 | 2 内存不够了?
【在 s*********d 的大作中提到】 : 调用一个2层的for循环,次数大概在400×1000左右, : 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直 : 接将结果写入文件 : 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多 : 大概什么地方占用了系统资源?
|
p*****e 发帖数: 310 | 3 矩阵预分配内存够了吗?用profile看看也行
【在 s*********d 的大作中提到】 : 调用一个2层的for循环,次数大概在400×1000左右, : 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直 : 接将结果写入文件 : 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多 : 大概什么地方占用了系统资源?
|
s******e 发帖数: 9 | 4 我觉得是写文件造成的,可以试试把变量临时保存到一定数量后再写入文件。
【在 s*********d 的大作中提到】 : 调用一个2层的for循环,次数大概在400×1000左右, : 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直 : 接将结果写入文件 : 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多 : 大概什么地方占用了系统资源?
|
s*********d 发帖数: 19 | 5 谢谢提醒,应该是频繁读写造成耗内存
修改后果然效率快好多
【在 s******e 的大作中提到】 : 我觉得是写文件造成的,可以试试把变量临时保存到一定数量后再写入文件。
|
l*****n 发帖数: 1068 | 6 为何不存入内存,最后再写文件??
【在 s*********d 的大作中提到】 : 调用一个2层的for循环,次数大概在400×1000左右, : 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直 : 接将结果写入文件 : 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多 : 大概什么地方占用了系统资源?
|
K*****y 发帖数: 1793 | 7 有时候计算占用内存太大,容易中途溢出。如果不写文件,前面的工夫就全废了。
【在 l*****n 的大作中提到】 : 为何不存入内存,最后再写文件??
|
j**u 发帖数: 6059 | 8 这个要顶一下。
我大二的时候总结:运行计算程序和打游戏一样,要养成常常存盘的好习惯。
【在 K*****y 的大作中提到】 : 有时候计算占用内存太大,容易中途溢出。如果不写文件,前面的工夫就全废了。
|
c******m 发帖数: 599 | 9 源程序在不就得了
【在 j**u 的大作中提到】 : 这个要顶一下。 : 我大二的时候总结:运行计算程序和打游戏一样,要养成常常存盘的好习惯。
|
j**u 发帖数: 6059 | 10 如果你的源程序每次运行不超过十几分钟,当然没问题。如果你的程序每次需要运行几
天甚至几个星期以上,你考虑问题的方式就不同了。把一部分中间过程保留,既容易分
析,又便于随时调整继续运行。
【在 c******m 的大作中提到】 : 源程序在不就得了
|