avatar
matlab 计算速度# Computation - 科学计算
s*d
1
调用一个2层的for循环,次数大概在400×1000左右,
循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
接将结果写入文件
开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
大概什么地方占用了系统资源?
avatar
A*g
2
内存不够了?

【在 s*********d 的大作中提到】
: 调用一个2层的for循环,次数大概在400×1000左右,
: 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
: 接将结果写入文件
: 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
: 大概什么地方占用了系统资源?

avatar
p*e
3
矩阵预分配内存够了吗?用profile看看也行

【在 s*********d 的大作中提到】
: 调用一个2层的for循环,次数大概在400×1000左右,
: 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
: 接将结果写入文件
: 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
: 大概什么地方占用了系统资源?

avatar
s*e
4
我觉得是写文件造成的,可以试试把变量临时保存到一定数量后再写入文件。

【在 s*********d 的大作中提到】
: 调用一个2层的for循环,次数大概在400×1000左右,
: 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
: 接将结果写入文件
: 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
: 大概什么地方占用了系统资源?

avatar
s*d
5
谢谢提醒,应该是频繁读写造成耗内存
修改后果然效率快好多

【在 s******e 的大作中提到】
: 我觉得是写文件造成的,可以试试把变量临时保存到一定数量后再写入文件。
avatar
l*n
6
为何不存入内存,最后再写文件??

【在 s*********d 的大作中提到】
: 调用一个2层的for循环,次数大概在400×1000左右,
: 循环内部只是用到向量的点乘、加法和读写文件操作,每次都是用同一个变量计算后直
: 接将结果写入文件
: 开始运行速度很快,但是运行最外层for循环的最后1/4左右时,运行效率降低很多
: 大概什么地方占用了系统资源?

avatar
K*y
7
有时候计算占用内存太大,容易中途溢出。如果不写文件,前面的工夫就全废了。

【在 l*****n 的大作中提到】
: 为何不存入内存,最后再写文件??
avatar
j*u
8
这个要顶一下。
我大二的时候总结:运行计算程序和打游戏一样,要养成常常存盘的好习惯。

【在 K*****y 的大作中提到】
: 有时候计算占用内存太大,容易中途溢出。如果不写文件,前面的工夫就全废了。
avatar
c*m
9
源程序在不就得了

【在 j**u 的大作中提到】
: 这个要顶一下。
: 我大二的时候总结:运行计算程序和打游戏一样,要养成常常存盘的好习惯。

avatar
j*u
10
如果你的源程序每次运行不超过十几分钟,当然没问题。如果你的程序每次需要运行几
天甚至几个星期以上,你考虑问题的方式就不同了。把一部分中间过程保留,既容易分
析,又便于随时调整继续运行。

【在 c******m 的大作中提到】
: 源程序在不就得了
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。