新足迹

 找回密码
 注册

精华好帖回顾

· liwus川菜系列之:毛血旺 (2012-3-3) liwus · 永远的Austen (2008-10-14) 雨睿
· 参加活动---雪花家粗茶淡饭 ——更新第3晚 结束篇 58楼 (2010-7-7) 紫雪花 · Bella Italia & 第N眼巴黎 - 更新完毕!多图杀猫…… (2012-5-29) joaquin
Advertisement
Advertisement
查看: 7671|回复: 58

[IT] asp.net web framework memory [复制链接]

发表于 2022-10-11 07:13 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-11 07:32 编辑

active private working set 数字超过1.1gb,是否正常啊?我的老板已经向我抱怨说给的内存从8gb ram升级到16gb ram,仍旧不够网站的使用。老板拒绝加内存到32gb ram.

是否可以认为asp.net和java一样要比rust language多用十倍内存啊?

是否只有把代码用rust language重写才可以根本解决问题啊?
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2022-10-11 09:01 来自手机 |显示全部楼层
此文章由 cpen5cpen5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cpen5cpen5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你的老板不会同意用rust吧?维护难。

发表于 2022-10-11 09:09 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-11 09:12 编辑
cpen5cpen5 发表于 2022-10-11 09:01
你的老板不会同意用rust吧?维护难。


不知道啦,反正老板和我说要用最新的技术,只要和我们的客户比快就行了,不必和amazon较真比速度

维护难,这句话是不对的啦,我写的20多个项目,编译成功后,基本上就差不多了,实际运行一小时后,基本代码就不用再改了,所以应该说是不用维护

发表于 2022-10-11 13:32 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我测试了一部分功能,一个占用500兆的功能现在在rust language编译windows版本运行在iis里占用23兆字节

发表于 2022-10-11 14:12 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DDD888 发表于 2022-10-11 13:32
我测试了一部分功能,一个占用500兆的功能现在在rust language编译windows版本运行在iis里占用23兆字节 ...

csharp asp.net往往会看到private bytes在不断的增加,但奇怪的是rust language+actix-web竟然那数字不增加,太棒了

发表于 2022-10-11 17:24 来自手机 |显示全部楼层
此文章由 cppbug 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cppbug 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没有具体的产品信息以及技术细节,没有人能给你建议。另外从老板或engineering manager的角度看,是不会同意用rust重写的,先不说用rust会不会变好,但就从未来维护,招rust程序员的难度这些角度,用rust重写都得不偿失
Advertisement
Advertisement

发表于 2022-10-11 20:09 |显示全部楼层
此文章由 chn217 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 chn217 所有!转贴必须注明作者、出处和本声明,并保持内容完整
知道内存占用的原因了吗?

发表于 2022-10-12 07:08 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-12 07:19 编辑
cppbug 发表于 2022-10-11 17:24
没有具体的产品信息以及技术细节,没有人能给你建议。另外从老板或engineering manager的角度看,是不会同 ...


那你对于如何解决我所面对的asp.net core内存不断增大问题有啥解决方案啊?我想我描述的是普遍问题,任何使用asp.net core的系统应该都面临同样的问题

哦,你说了,不能给我建议

我想公司是要继续赚钱的,我是要继续吃饭的,网站如果崩溃,我就没饭吃,拿人钱财,与人消灾,很简单的事啦。编程语言只是工具,啥工具可以解决问题,就用啥工具啦,不必上升到信仰啦,你说的。rust作为最近五年来全世界程序员最爱的编程语言https://www.turing.com/blog/rust ... ogramming-language/,你的担心是没有根据的,当初reactjs, typescript如果人人都像你这样,网站大概还停留在直接写javascript了,现在多好,大家都懂reactjs,市场上都是会写reactjs的程序员,系统多容易维护啊。

我写程序28年,从来就没有听你说的那观点啦,如果必要,代码可以用汇编语言来写,当初borland delphi里就有大片的汇编语言啦,包括应用层,例如字符串搜索,我从来就没有听到任何delphi程序员抱怨代码里包含了汇编语言,汇编语言代码的维护应该比rust难多了吧

发表于 2022-10-12 07:13 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
chn217 发表于 2022-10-11 20:09
知道内存占用的原因了吗?

我观察内存现象大概已有六年了,一直都是这样越来越大,估计和datatable一个模式,属于要被摒弃的模式

发表于 2022-10-20 07:36 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这是rust和java内存比较的文章https://www.linkedin.com/pulse/s ... java-kai-mindermann

发表于 2022-10-20 07:43 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这是我运行在amazon aws ec2 free tier 一周的程序的截图
那个cpu的尖刺是因为我编译helix editor时造成的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
Advertisement
Advertisement

发表于 2022-10-20 07:45 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DDD888 发表于 2022-10-20 07:43
这是我运行在amazon aws ec2 free tier 一周的程序的截图
那个cpu的尖刺是因为我编译helix editor时造成的
...

我发觉使用rust language其实是对地球的环保做贡献,可以使用更少的电力做更多的事,我是环保人士啦

发表于 2022-10-20 14:00 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这是对招不到人的回答

Our concerns about the talent pool for Rust were unnecessary. It’s a language that attracts experienced programmers who want to deliver.

reference
https://dailyedit.com/blog/why-r ... hoice-for-startups/

中文翻译

https://blog.csdn.net/csdnnews/article/details/125454335

发表于 2022-10-21 02:40 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这种内存运行之后不断增大, 一般都是内存泄漏,看看哪些地方用了非托管代码,之后没有释放。
.net core本身并不会有问题, 很多大公司都在使用, 是足够成熟的。

从老板的角度说, 换语言会有比较大风险。
1. 需要多少时间, 多少钱?
2. 上了之后会不会有其他之前没有考虑到的问题?
3. Rust的人员招聘问题

并不是说Rust不好, 但是可能老板考虑的不仅限于技术范畴。 比如第3条虽然你拿出几篇文章说不是问题, 但是不见得有很强说服力, 毕竟TIOBE名单上, c#排第5, Rust还排在20, 究竟能否成为主流都未可知。

发表于 2022-10-21 06:23 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
flyspirit 发表于 2022-10-21 02:40
这种内存运行之后不断增大, 一般都是内存泄漏,看看哪些地方用了非托管代码,之后没有释放。
.net core本 ...

根据我的体验,csharp java在内存管理技术层次上是一个级别的,很难像你所说牵扯到内存泄漏啦,我同事写的web service也在同样的服务器上运行到1gb ram,要不你告诉我下你写的csharp代码在服务器上用了多少内存?

发表于 2022-10-21 07:12 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-21 07:24 编辑
flyspirit 发表于 2022-10-21 02:40
这种内存运行之后不断增大, 一般都是内存泄漏,看看哪些地方用了非托管代码,之后没有释放。
.net core本 ...


你说的人员招聘,此言差矣,按你所说,公司在招聘人员的时候,不应该选个最优秀的啦,而应该选个最差的啦,因为选了最优秀的,万一以后那最优秀的不能工作了,就在这市场上再招就招不到最优秀的了,相反,找个最差的,那以后再招,总是会招到比最差的好的,这样的说法不是滑天下之大稽吗?

其实一切都在动态变化中,刻舟求剑是要不得的,不然会被时代所淘汰啦,公司也一样会被淘汰,例如王安,yahoo,我1994年起写c++程序,后来写了x86 assembly language, delphi, sql, javascript, typescript, vb, cobol, csharp, abap,golang, rust language, 这年头哪个程序员只会一种编程语言啊?你写过几种编程语言啊?
Advertisement
Advertisement

发表于 2022-10-21 09:32 |显示全部楼层
此文章由 happypy1 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 happypy1 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不知道你的网站规模和日常流量,还有你是怎么部署你的系统的。比方说,你的服务器和数据库都是跑在同一台ec2上吗?如果你确定是.net core 使用了大部分内存,可以分析一下它的heap space。

java里面有工具是可以dump 下来的。我想.net 也应该是可以的。

https://learn.microsoft.com/en-us/visualstudio/debugger/how-to-debug-managed-memory-dump?view=vs-2022



发表于 2022-10-21 09:36 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-21 10:16 编辑
happypy1 发表于 2022-10-21 09:32
不知道你的网站规模和日常流量,还有你是怎么部署你的系统的。比方说,你的服务器和数据库都是跑在同一台ec ...


是的,数据库是mysql,所有的都跑在同一台计算机上,网站服务澳大利亚新西兰一百多家公司,cpu利用率在最繁忙时刻在百分之三十左右,主要问题是内存用了10gb ram,一共有16gb ram

我的理解是内存需求正常的啦,记得2006年时,一个客户花了十万新西兰元组建计算机运行我以前工作的公司开发的j2ee网站运行在orion application server windows上,当时我想,这家公司好有钱,那时我工作的公司提供给客户运行的就是个普通的计算机,也就值个两千多新西兰元。

我想我没必要去分析heap,没那空啦,顺便我诚实的说,我也不知道如何做啦。其实分析了也没用,我写的网站大量用缓存。

发表于 2022-10-21 10:11 |显示全部楼层
此文章由 penn 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 penn 所有!转贴必须注明作者、出处和本声明,并保持内容完整
弱弱的说一句,都服务澳新100多家公司,怎么就不能让内存多个16G呢?不值得吗,不香吗?

发表于 2022-10-21 10:12 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-21 10:14 编辑
penn 发表于 2022-10-21 10:11
弱弱的说一句,都服务澳新100多家公司,怎么就不能让内存多个16G呢?不值得吗,不香吗? ...


我和我的上司建议,他拒绝了,你说让我如何做啊?我的上司正确来说是个合格的销售啦,不管写程序的事。

发表于 2022-10-21 10:27 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对啊,16g内存不值钱,访问量比你大的多的网站用。net core也没这个问题啊
Advertisement
Advertisement

发表于 2022-10-21 10:53 |显示全部楼层
此文章由 金牛座的 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 金牛座的 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你说的“不够网站使用”是什么意思?
.net 是有内存就尽量用。如果你想保留多些内存给数据库,可以试着改改 .Net Runtime 设置限制一下内存使用,加快garbage collection。

特殊贡献奖章

发表于 2022-10-21 10:55 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你这代码多老了,怎么还跑在一台单独的服务器上?
不能花钱升级内存,但能花钱重写代码?
因为需要多用内存就要抛弃c#重写?
另外你在公司啥职位,个人喜好可以决定整个换掉核心产品技术栈?

发表于 2022-10-21 10:59 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kr2000 发表于 2022-10-21 10:55
你这代码多老了,怎么还跑在一台单独的服务器上?
不能花钱升级内存,但能花钱重写代码?
因为需要多用内存 ...

我上司决定使用一台单独的服务器啦,我早就建议说可以考虑运行在amazon linux上省点版权费啦,照我的意思,可以用多个amazon ubuntu linux ec2跑rust language写的网站啦

发表于 2022-10-21 10:59 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kr2000 发表于 2022-10-21 10:55
你这代码多老了,怎么还跑在一台单独的服务器上?
不能花钱升级内存,但能花钱重写代码?
因为需要多用内存 ...

我就个写网站的啦

发表于 2022-10-21 11:51 |显示全部楼层
此文章由 penn 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 penn 所有!转贴必须注明作者、出处和本声明,并保持内容完整
遇到不懂技术又抠门的老板,那你不是很辛苦?不过也说明你工作不可替代了,谁愿意动不动就换个语言重新写呢。
Advertisement
Advertisement

发表于 2022-10-21 12:10 |显示全部楼层
此文章由 woshidajiangyou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 woshidajiangyou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lz一天到晚推销rust我就笑了

lz如果你用rust重写,然后你离开公司,你老板就要哭了

我以前公司有人用elixir写了个内部维护页面,后来的程序员要碰这个页面的都哭了

本来一个很简单的事情,因为要额外招聘一个elixir程序员,老板需要额外支出不少钱
elixir程序员很贵,又很少
锦瑟无端五十弦,一弦一柱思华年。
庄生晓梦迷蝴蝶,望帝春心托杜鹃。
沧海月明珠有泪,蓝田日暖玉生烟。
此情可待成追忆,只是当时已惘然。

发表于 2022-10-21 12:32 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
woshidajiangyou 发表于 2022-10-21 12:10
lz一天到晚推销rust我就笑了

lz如果你用rust重写,然后你离开公司,你老板就要哭了

天外有天,人外有人,不能把自己太当回事啦,以为离开了自己,地球就不转了,兄弟姐妹,你说是吧?

这世界上rust language 程序员多的是啦,不能把我自己一粒灰尘当太阳啦,哈哈

发表于 2022-10-21 12:35 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2022-10-21 12:37 编辑
penn 发表于 2022-10-21 11:51
遇到不懂技术又抠门的老板,那你不是很辛苦?不过也说明你工作不可替代了,谁愿意动不动就换个语言重新写呢 ...


我喜欢不懂技术的老板啦,其实只要公司里有人棋高一着,就会啥都不顺心啦,这岁月苦短,要让自己活的开心啦

说真的,有水平的同事也要看人的,不然天天被压着多难受啊,我28年工作,还真没遇见过被有本事的同事带着提高技术水平的啦,知识只能自己学和练啦

发表于 2022-10-21 22:12 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DDD888 发表于 2022-10-21 06:23
根据我的体验,csharp java在内存管理技术层次上是一个级别的,很难像你所说牵扯到内存泄漏啦,我同事写 ...

C#和Java代码写的有问题也会产生内存泄漏。我也很难想象你会认为C#和java代码的内存管理不会导致泄漏。

除了内存泄漏, 还可以看看其他原因,比如是不是用了空间复杂度太高的算法, 或者就是简单的分配了太多内存。 若这些都没有问题, 仅仅是业务量大而导致, 在现有基础上调整成分布式架构也比从新写一个产品要强。

你同事一个web service用了1gb内存, 那要看实现什么功能, 如果实现加减法, 那是太多了。 如果实现了一个全网搜索, 用100gb内存也不多。

同样,你问我csharp代码用了多少内存,我写过很多代码, 从简单到复杂, 内存占用从几十k到几个g都有。 抛开功能复杂度谈内存占用并没有意义。


发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部