免费注册 查看新帖 |

Chinaunix

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

一个项目不让用malloc [复制链接]

论坛徽章:
0
51 [报告]
发表于 2007-06-23 23:26 |只看该作者
原帖由 bleem1998 于 2007-6-23 23:07 发表



可靠性要求非常高
有些时候对响应时间也有要求
300ms



如果是这样的系统,那么客户要求并不过分。
ps: 我们的开发的系统连中断都禁止使用。OS更别想了。
全局变量在这类系统中往往不可避免,不应该算是coding很烂的标准吧。^_^

[ 本帖最后由 bilbo0214 于 2007-6-23 23:28 编辑 ]

论坛徽章:
0
52 [报告]
发表于 2007-06-23 23:28 |只看该作者
原帖由 flw2 于 2007-6-23 23:20 发表
先不说malloc和new的区别了
malloc跟静态相对来说,有个问题就是可以随用随到,不用考虑细节。
静态定义的有大小限制(不知道是不是可以用完整个可用的地址空间,相信做些手脚就可以),而且还要自己管 ...

用mmap分配大块内存后,还是需要一个类似于malloc & free 的机制处理程序中需要动态分配的小块内存,其实就是相当于自己实现了 malloc & free.

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
53 [报告]
发表于 2007-06-23 23:29 |只看该作者
哎,看来楼主这个项目是个大项目啊

是千万级别的不?

论坛徽章:
0
54 [报告]
发表于 2007-06-23 23:31 |只看该作者
好多主意都跑题了吧。
都说了不能用malloc,就是不允许初始化后进行动态内存分配,自己实现malloc还是动态内存分配,不能满足客户要求。必须修改设计才对。

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
55 [报告]
发表于 2007-06-23 23:35 |只看该作者
原帖由 bleem1998 于 2007-6-23 22:33 发表


1. solaris + oracle + c
2. 在库生产流程控制
3. 没有协定

而且对方的数据库设计非常搞笑
实在太多搞笑的地方了
比如表的字段是日文的
跟日文表名奋战了N久
好容易出现个英文字段吧
结果在有的表里 ...


既然是solaris操作系统 为什么不考虑用JAVA呢?

内存管理机制先进,对日文的支持又比较好。。。

[ 本帖最后由 evaspring 于 2007-6-23 23:37 编辑 ]

论坛徽章:
0
56 [报告]
发表于 2007-06-23 23:36 |只看该作者
其实lz应该把他程序中哪些地方用到了malloc列举出来。
只有针对特定的问题,采用采用特定的解决方案才行。
否则要想得到一个通用的方法解决所有的动态内存分配的问题估计很难。

[ 本帖最后由 jaffaz 于 2007-6-23 23:38 编辑 ]

论坛徽章:
0
57 [报告]
发表于 2007-06-23 23:39 |只看该作者
原帖由 evaspring 于 2007-6-23 23:35 发表


既然是solaris操作系统 为什么不考虑用JAVA呢?

内存管理机制先进,对日文的支持又比较好。。。


虚拟机的技术是高可靠性系统中首要排除的目标之一,因为根本没办法验证它的安全性和可靠性。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
58 [报告]
发表于 2007-06-23 23:46 |只看该作者
原帖由 bleem1998 于 2007-6-23 23:07 发表



可靠性要求非常高
有些时候对响应时间也有要求
300ms

这样的话你们在最开始就应该协商好的,怎么到了最后才扯这些问题?

论坛徽章:
0
59 [报告]
发表于 2007-06-23 23:51 |只看该作者
声明一个空间足够大的全局数组,再实现一套动态内存管理算法负责从该数组内进行动态内存分配。其实换汤不换药。

论坛徽章:
4
CU大牛徽章
日期:2013-04-17 11:48:26CU大牛徽章
日期:2013-04-17 11:48:40CU大牛徽章
日期:2013-04-17 11:48:45摩羯座
日期:2013-12-06 18:10:04
60 [报告]
发表于 2007-06-24 00:44 |只看该作者
Solaris里不清楚,但我知道在Linux里,malloc里使用的系统调用应该是可以休眠的,客户可能怕引起休眠吧。

可以把malloc和free写成宏,malloc宏主要动作是创建一个数组,而free宏则什么也不做,顶多将数组清空。
把这些宏写进一个头文件里,然后在编译的时候想法在编译器里把标准库的malloc/free函数屏蔽掉。

这样应该很省事吧?不过,哈哈,有变量被循环分配和释放的话……你等着被砍吧。

我觉得还有一个方法,就是直接使用不会引起休眠的内存分配系统调用函数,而不是去使用库--这也还是等于自己实现了malloc/free

[ 本帖最后由 fire_cpp 于 2007-6-24 00:54 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP