免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cellar
打印 上一主题 下一主题

牛进来给点建议 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-12-16 10:56 |只看该作者
原帖由 cellar 于 2006-12-15 21:22 发表


8Gb/s NP

分8路到千兆以太,每路后面全进内存,跟算法过滤,处理、重组,缓冲是硬件机制的循环队列,处理过程全指针传递,写时拷贝,大概就是这样,我问的问题就是这时的分配和释放内存(堆)是自己组织好 ...


我认为自己组织应该好一些,看你的需求实时性很强,估计一般的非实时的操作系统做不到。建议采用嵌入式的实时操作系统VXWORKS来搞。

论坛徽章:
0
22 [报告]
发表于 2006-12-16 12:01 |只看该作者
原帖由 cellar 于 2006-12-15 21:22 发表


8Gb/s NP

分8路到千兆以太,每路后面全进内存,跟算法过滤,处理、重组,缓冲是硬件机制的循环队列,处理过程全指针传递,写时拷贝,大概就是这样,我问的问题就是这时的分配和释放内存(堆)是自己组织好 ...


没有必要自己写类似于VM这样的东西。也不会用到地址转换(我看不出有什么地方需要进入实模式)。所以最好的方法还是在堆上分配大内存,然后写一个缓冲池机制来管理。这种机制在很多TCP/IP协议栈中都有。这样所有的内存申请和释放都通过缓冲池提供的接口进行,则不会产生内存碎片,效率也比较高。

论坛徽章:
0
23 [报告]
发表于 2006-12-16 22:19 |只看该作者
内存消耗大的程序都有自己的管理器. 不一定要是全部功能实现, 也不一定要管理所有的内存分配, 但至少有某种程度的缓存管理.

自己的管理器还有别的好处: 容易跟踪内存泄露,hogging, 内存消尽的处理, 等.

论坛徽章:
0
24 [报告]
发表于 2006-12-17 10:12 |只看该作者

我有一套现在的内存池的库文件,非常适用于大内存消耗的应用.

使用这套库之后,他直接重载new 和 delete,原有应用不作任何更改,简单方便.
如果需要,请留下邮件地址.

论坛徽章:
0
25 [报告]
发表于 2006-12-17 15:41 |只看该作者
原帖由 seoul 于 2006-12-17 10:12 发表
使用这套库之后,他直接重载new 和 delete,原有应用不作任何更改,简单方便.
如果需要,请留下邮件地址.

这种应用需要 new delete 吗?
我认为不需要, new delete 慢得一塌糊涂.
分配需要的全部内存,内部再自己设指针即可

论坛徽章:
39
2017金鸡报晓
日期:2017-02-08 10:39:4219周年集字徽章-周
日期:2023-04-15 12:02:2715-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:27
26 [报告]
发表于 2006-12-17 19:34 |只看该作者
象这样的应用肯定自己写内存管理,没有商量的余地,用系统的想法本身就是错,想都不要去想。

论坛徽章:
0
27 [报告]
发表于 2006-12-18 17:39 |只看该作者
原帖由 zx_wing 于 2006-12-15 19:22 发表
讨论就讨论,不要吵,也不要比。
心平气和点,不要把CU搞的跟CSDN一样浮躁。


haha .....
不要攻击别人啊。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
28 [报告]
发表于 2006-12-18 20:30 |只看该作者
原帖由 cellar 于 2006-12-15 17:39 发表


我每秒要处理的数据是几百M上下,普通pci的的硬件频率是66Mhz,每秒传输上限66x4B=264M Byte,基本上和我要处理的差不多,你说 ...
原帖由 cellar 于 2006-12-15 21:22 发表

分8路到千兆以太,每路后面全进内存,跟算法过滤,处理、重组,缓冲是硬件机制的循环队列,处理过程全指针传递,写时拷贝,大概就是这样,我问的问题就是这时的分配和释放内存(堆)是自己组织好 ...



千兆以太用普通pci?:em11:
偶觉得这个方案硬件上就没搭配妥当,软件再怎么优化也无能为力。

[ 本帖最后由 gvim 于 2006-12-18 20:32 编辑 ]

论坛徽章:
0
29 [报告]
发表于 2006-12-18 21:11 |只看该作者
用单机处理的可能性不高。
这么大数据量还要频繁分配内存,那我就在这里拍板了:不可能!
总线速度,内存读写速度,你每份数据需要读写的内存次数,计算一下在说吧。
小伙子,放弃你可怕的想法吧。

论坛徽章:
0
30 [报告]
发表于 2006-12-20 16:44 |只看该作者
boost有做好的各种池,你可以随便找个用
在《设计新思维》里具体讲了的,大概意思就是先分个最小的,再分个基准的,再分个逻辑的,再分个。。。  记不清了,效率颇高
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP