有没有程序员大佬教怎样优化程序内存占用

DARKSOULS-avatar

DARKSOULS

又不是不能跑!能跑就行。搞那花里胡哨的干啥。
ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯-avatar

ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯

Reply to [pid=543446078,28169053,1]Reply[/pid] Post by [uid=40510243]DDD粒[/uid] (2021-08-21 21:27)

程序员还是要有点追求
foxgirl-avatar

foxgirl

装个360,点下那个圆球,清理下。[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]
Fappy-avatar

Fappy

[quote][pid=543448517,28169053,1]Reply[/pid] Post by [uid=62953097]马在草原失眠[/uid] (2021-08-21 21:37):

程序员还是要有点追求[/quote]自己debug一下,看看跑的时候什么变量没释放不就知道了
Zareow-avatar

Zareow

java程序员建议不要在这个地方浪费时间[s:ac:哭笑]

单机内存总有上限,为什么不直接上分布式,把分布式学好就完了,有分布式系统还差那点内存么[s:ac:哭笑]

当然我不是很懂你们c/cpp程序员……
Yashiro-avatar

Yashiro

不懂你写个c井还有什么好扣内存的,chrome一开就是2个g往上的内存占用还不是照样用?
真爱扣细节你咋不去写c呢,用指针和malloc,保证把内存扣得细细的[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bca2a2f43.png[/img]
bigwood10-avatar

bigwood10

[quote][tid=28169053]Topic[/tid] Post by [uid=62953097]马在草原失眠[/uid] (2021-08-21 21:23):

写了个cli+dll的c#小爬虫,爬完几个网页竟然用了6MB内存,感觉有点问题。。

需要我给上代码吗,复杂的语法只是用到了正则表达式和List<string>泛型而已

仓库 [url]https://gitee.com/crella/frinan[/url],class1.cs是dll,program.cs是cli启动程序[/quote]6mb内存算啥。。。 有些语言运行个helloworld都要好几十mb

内存这东西别用的太夸张就行 现在pc和服务器内存都很大 优化基本也更关注cpu方面
另外就是长时间跑的程序别有内存泄露问题就行
4Ever Young-avatar

4Ever Young

6m太少了 多爬一点 爬几百个再说
再说很多网页本身也不小
优化方法就是看看变量有没有重复生成,注意回收
big boi spoof-avatar

big boi spoof

改成用c艹写?
TheOneStormnado-avatar

TheOneStormnado

没必要,之后在考虑,又不会内存泄漏。写c/c++得看,要是内存泄露了就惨了。
ShadowCreatureZ-avatar

ShadowCreatureZ

6mb就不要花时间去折腾了,并行跑100个也才600m,chrome随便打开一个网页就有100m占用了。

优化内存主要是几个方法,本来我们是用空间来换时间,用内存的占用省掉加载过程中的时间,而有的情况下,又不得不通过多次加载来减少内存的占用。


你做一个很大的数据处理,现在正常用的电脑内存是8g左右,那你不能一下子把8g的数据全放内存里,考虑到多进程的因素,你单进程考虑用到2g内存就可以了,如果文件小于2g,一波就处理完了,大于2g的需要分块处理,代码上要有分块加载排队处理,完了还要把结果合并的逻辑。就比一波处理完逻辑上复杂。这就是优化内存使用的原理或者说原型。更复杂的,多线程共享使用,多进程并行处理,对于数据使用的加载走异步模式等。
TOGgledShot-avatar

TOGgledShot

最简单 java 把edle调大点
koriganku-avatar

koriganku

你可以用C写.......大部分现代的VM或者runtime都会自己管理内存块的, 释放之后不会马上还给系统的.......


没到实在不能忍的程度, 当然是选择加内存和加运行的服务器了[s:ac:哭笑]
Jahmobbin-avatar

Jahmobbin

知足吧,菜鸡就会用python开无头浏览器爬
Hadez-avatar

Hadez

6M很多吗,现在谁也不在乎
真要在乎的话,我没看到要保存list然后再输出的必要性啊
直接输出不就可以把存储的部分省下了吗
lncubis-avatar

lncubis

属于是码农葛朗台了
FoxDaemon-avatar

FoxDaemon

都什么年代了,内存这种东西只要不泄露就行。大多数优化内存的目的是减少syscall,而不是内存占用[s:ac:茶]
Kerze-avatar

Kerze

用了80g内存的c艹程序员觉得你这个完全是小case
Uptightscissors-avatar

Uptightscissors

有时间就研究下,一般业务上不太会对内存有很严格的要求,只要不是非常夸张就好。真的发生内存耗尽的时候,才会考虑优化内存。