由买买提看人间百态

topics

全部话题 - 话题: 动态内存
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
s********k
发帖数: 6180
1
做一个网络,节点数不同需要的资源不同,所以想用动态分配的方法。稍微大一点的系
统都需要动态内存分配机制吧
g*********s
发帖数: 1782
2
来自主题: Programming版 - C++动态内存碎片问题
在调一个memory corruption的bug。purify/valgrind都没帮上忙,只好一点点跟踪。
目前怀疑的一个方向是动态分配的小型对象(8个字节以下)太多。如果是这种情况,
memory pool的正确处理方法是什么?
如果是保持chunk里特定长度的对象数目不变,那么即使还有很多内存可用,也会出现
out-of-memory问题。
如果允许split其他chunk,那么回收时造成很多碎片,还是会有问题。
研究memory pool的高手指点一下吧。
I*******e
发帖数: 1879
3
☆─────────────────────────────────────☆
Ramboiory (暗黑八神庵) 于 h 提到:
一个函数里
void func()
{
int* p = new int[3];

.....
delete []p;
}
动态申请分配内存,以及最后的回收都已经做到位了。中间步骤中没有用到delete。函
数就是一般的顺序执行的函数,没有递归。这个函数被多次调用,在大概几万次时出现
BUG,错误提示是“HEAP CORRUPTION DETECTED: before Normal block (#587379) at
0x009753E0; CRT detected that the application wrote to memory before
start of heap buffer”。
中止到断点调式,发现断点停在delete []p这一句。我猜想是不是前面的new没有分配
成功导致这个p实际值是NULL。但是,我用VC++平台的的Watch察看local变量,发现
p[0], p[1], p[2]的值都是
z*****n
发帖数: 7639
4
参考一些RTOS对不同microcontroller的porting中
是如何对heap进行管理的。
如果你是准备在atmega128这样只有4kram的系统上
用,我的建议是别用动态内存,用静态数组。你在
内存管理上耗费的资源对于4kram来讲太大。
我搞过atmega128+cc2420的平台,多跳路由协议,
全网同步功能,内存很紧张。
a****l
发帖数: 8211
5
你有什么东西必须要动态内存?一般这种东西都用静态内存的.
b***y
发帖数: 2799
6
☆─────────────────────────────────────☆
rebatezhq (test) 于 (Sat Aug 27 09:49:01 2005) 提到:
很多人在这说我的方法和auto_ptr/SmartPtr没有区别。
这是只看到表面现象。
auto_ptr/SmartPtr的设计目的是管理指针的,其名字说明了一切。
但是,动态内存分配大多数情况下却是用于数组的。虽然在C++数组
和指针通常可以通用,但这一点点设计目的的区别就产生了问题。
比如,auto_ptr所管理的对象可以这样用:ap->...,但不能ap[i]=...
auto_ptr也不能检测数组越界,这是个比内存泄漏更麻烦的问题。
我的方法设计目的是针对数组的。这同样可以从名字看出来。事实上
我根本没有重载指针的运算(->和*)。对我来说,单个的对象是不适
合用指针的,而应该用引用。因为引用运算(.)的书写复杂度底。
不要小看这一个字符的差异,如果你要对一个大结构赋初值就知道了。
当然你可以在TArray中加入支持指针的东西。我个人认为是没有用处
的。而我的方法的另一个好处是你可以加很多
g********o
发帖数: 30
7
问大家一道题,CISCO的。说是要实现一个myMalloc(),每次分配固定的size。固定
的size做起来应该简单不少。解法应该是用两个list,一个记录用过的,一个记录free
的,如果free的有,就把free的头结点去掉,加到used list的头部。假设可以用
malloc一次分配一个MAX_SIZE的大block,如何实现myMalloc和myFree?
这方法是我在事后想到的,不过我在如何初始化这个free list的时候卡住了。请问记
录free list如何初始化,是用n个结点的data来记录每一块内存的位置吗?
b******7
发帖数: 92
8
内存对其用的,最常见的按4字节对齐,若不对齐,会导致cpu取数据时多次寻址,效率
有影响。
r*****e
发帖数: 792
9
没有使用STL的情况下,有如下程序:
int *array = new int(1000000);
if (array == 0) cout<<"insufficient memory"< for (...) //赋值
array[i] = 随机数;
但是当i=33790后,就出现segmentation fault,
试过多次总是在33790后出错。如果array换成double
则改为在33790/2 = 16895后出错。显然和memory size
有关系。
既然array pointer没有返回空值,说明内存申请到了,但是
为什么出错呢?是系统heap size不够还是什么别的原因?
ulimit -a 显示stack size 为(kbytes -s) 10240, 而
33790×4没有10240k大啊?man ulimit说单位是1024byte,
也不知道ulimit -a中显示的到底是byte呢还是kbyte。
反正试过‘ulimit -s 很大的数’ 也没区别。
另外,如果用 int array[1M]的话,可以运行,但是到3M左右
就又是segmen
g*********s
发帖数: 1782
10
来自主题: Programming版 - C++动态内存碎片问题
发现程序和内存管理模块都有问题。
mem pool这里分配的时候不检查越界肯定不对。
另一方面,跟踪下去,发现根源在于程序里有个模块的数据类型定义的是一个float +
float*的union,然后通过一个bitmap识别。这种数据定义方式也太不爽了。
s******n
发帖数: 876
11
来自主题: Programming版 - C++动态内存碎片问题
都什么年头了, 内存比白菜都便宜了, 还用union, 完全是自虐.

+
该去
在是
时刻
时你
g*********s
发帖数: 1782
12
来自主题: Programming版 - C++动态内存碎片问题
倒也有需求。是100G,跑50个小时的程序。白菜论吨的话也不便宜。
但我觉得省内存应该有更好的方法。这样牺牲可靠性代价太大。
v*s
发帖数: 946
13
4K有必要搞动态内存管理吗?
各个模块开自己需要的全局数组就差不多了吧。
4K,那得是多古老的设备啊。

发帖数: 1
14
来自主题: Military版 - 华为为何在美国遭打压受气
华为为何在美国遭打压受气?因为中国40年扔了这个小零件
2018-01-17 08:51
华为
/
计算机
/
英特尔
来源:内容来自手抄报 ,谢谢。
这篇文章很长,披露了中国40年GDP高速增长和印钞机轰鸣掩盖下高科技和制造业衰落
的真相。
当华为手机在美国的广告已经挂起,由于美国国会18位议员的反对,美国最大的电讯运
营商AT&T撕毁协议,华为手机进军美国市场再次受阻。
华为高管余承东哭了,中国人气了!
可是,生气有什么用呢?
美国人从来就是这么霸道,他们没有丝毫的信用。
他们将中国看作美国商品高价销售的市场,却不准中国产品进入美国市场。
多少美国产品在中国畅通无阻,市场已经完全开放,美国人还说你不开放。可是美国市
场却对中国企业严密封锁。打压华为和中国企业这不是第一次,而是一直打压封锁。
面对这种不公平,华为只能忍受,中国人只能气愤,也只能接受。你几乎没有反抗的能
力。
为什么?
因为,包括华为,中国的电子产品的命门都捏在美国的手里。
这个命门,就是芯片。
手机就是一部微型化集成化的电脑,它集成了原来的电脑、手机、娱乐等一系列功能,
小型化功能强大,需要的芯片就越精密,韩日德台有... 阅读全帖
z****e
发帖数: 54598
15
没太看懂你要评估啥东西
你是打算计算平均内存使用吗?
java的大部分程序,内存是托管的
使用的情况是动态的,因为一旦过了临界点,就会触发gc
gc之后,内存使用就小一点,这个动态的过程你评估了有啥用?
你是担心内存使用太多导致溢出吗?
w***g
发帖数: 5958
16
是刚好名字相同。数据结构中的heap本质上是一种树结构。内存中的heap本质上是一种
线性结构。内存中的heap是和stack相对的,heap往上长,stack往下长,heap用来存全
局动态数据,stack用来存局部动态数据。不过内存中的stack倒是按照数据结构的
stack存放的。
d******a
发帖数: 238
17
来自主题: JobHunting版 - Bloomberg面经+个人找工作小感
恭喜楼主啊!问你下你的面试题,
设计问题,一堆股票,还有股票值,不断更新,如何在某一时刻返回,前20大股票值和
其对应的股票
公司,大概是一个map 键与值的转换问题。
这个问题,用map的话,因为map是按key升序排列的,前20大股票的话。我们应该按股
票值排序。可以遍历map然后把股票值作为key,股票名作为value,装入一个multi map中
,然后再取最后20个值。
还可以把原来map中的pair<股票名,股票值》放到vector里,然后排序再取20个。
您当时是怎么做的?
vector的实现,你是用模板类写的吧?具体他们要求到什么程度了?函数体要求都写出
来没?vector实际上是个动态分配的数组。你是怎么管理动态内存的?比如说当你push
_back的时候,如果原来空间不够的话,肯定要grow. 你是用c++中的allocator class
实现的?还是简单用new, delete管理动态内存的?
谢谢!!!
s******u
发帖数: 179
18
来自主题: Linux版 - Help! Bus error!
里面有大量的动态内存分配,且有相当一部分错误是在动态申请内存时出错的,也有在
跟内存申请无关的地方出错的,申请完之后,都是紧接着付初值为0的
谢谢你 Notsaw,呵呵
c***d
发帖数: 996
19
来自主题: Programming版 - [合集] 请问关于堆栈的问题
☆─────────────────────────────────────☆
dickkie (大红椒) 于 (Sun Oct 28 23:59:16 2007) 提到:
请问在C++中,内存分配是否严格的按照此规矩:
只有用new生成的对象才在堆上,其余的一律为栈上或全局变量区
小弟有此问题,是因为教科书上说动态内存分配即堆,它的好处是能在runtime时才确
定具体需要多少对象然后生成,而动态内存分配是由new来完成,那么在此例子中:
int i;
cin >> i;
if(i==10) {
int i=3;
string str="foo";
}
请问这里if里的i和str是在栈上还是堆上?
N******2
发帖数: 436
20
来自主题: Hardware版 - Xeon, ECC内存和i7的区别
刚读了Desktop Engineering上面介绍的Xeon, ECC内存和i7的区别,现学现卖。
Xeon可以接ECC内存,i7不行。
ECC内存的优势是多一个额外的bit,可以通过奇偶校验来矫正很多内存错误。现在的内
存芯片都是由很小的一个个电容上的电压来表示0或者1,这些电容一是会漏电,所以需
要动态刷新,二是有可能受外界的电磁干扰,或者背景宇宙辐射的影响而发生错误。
ECC能够矫正大概99.9998%的错误。Google发现平均每个内存条每年有3751个ECC可以纠
正的错误。
此外,Xeon比i7可以有更多的核,更高的可靠性,更好的数据完整性性能,更大的缓存
,更多的内存带宽,和很多专业软件都对Xeon进行了优化和提供专业认证。
对于银行,长达几天几个月的模型模拟公司来说,可靠,不出错是他们选择Xeon的原因
。这也是为什么工作站和服务器基本上都选用Xeon和ECC内存。
i7基本上就是普通用户用的。
z*y
发帖数: 193
21
来自主题: Programming版 - C++程序如何处理内存分块?
我现在在做的一个C++程序要用到很大的内存。虽然每次都及时的释放了内存, 但运行
久了以后,new function 会因为内存分块而不能分配足够大的连续内存,即使总的可
用内存是够的。我现在是尽可能的在程序开始就把需要的内存一次分配好,但有些地方
还是要动态的分配,想问问还有什么好的解决方法吗?谢谢!
j**********i
发帖数: 3758
22
http://zhidao.baidu.com/question/10971798
右键单击我的电脑-属性-常规 就有了
有个叫 EVEREST Home Edition 2.20的软件,你下载来就能看到你电脑有一切!
百度知道真的知道吗?
正确的办法是下一个常驻内存的linux系统,不要硬盘,网络启动或者USB启动,然后拔
掉网线和USB盘。
弄个小的文本文件,二归一复制拷贝20-30次。看看有多大。
如何测试电脑内存条的速度啊? 百度又知道了。
EVERESTCorporateEdition 或CPU-z
怎么看电脑内存频率 百度知道
内存的数据是动态的频率有什么用,难道频率快了就是有效指标吗?还DDR,DDR2,
DDR3。过两天还有PPP狗8出来了。
写一个小的sin cos程序,算它个几万遍,看看总的时间有多少!这就是为什么那些驻
留内存的系统既不提供拷贝功能,
也不提供编译器,都给了,许多内存厂家就会倒闭了。老百姓甚至零售商都是糊涂虫,
啊,啊,新一代处理器。可是呢,真正什么是好的,什么是坏的,连标准都不知道。
高科技买了个鸭子价格,低档次的东西还大行其道。DDR你的头。
f***y
发帖数: 4447
23
新华社合肥9月20日电(记者董雪)20日在安徽合肥召开的2019世界制造业大会上,总
投资约1500亿元的长鑫存储内存芯片自主制造项目宣布投产,其与国际主流DRAM产品同
步的10纳米级第一代8Gb DDR4首度亮相,一期设计产能每月12万片晶圆。
该项目以打造设计和制造一体化的内存芯片国产化制造基地为目标,2016年5月由
合肥市政府旗下投资平台合肥产投与细分存储器国产领军企业兆易创新共同出资组建,
是安徽省单体投资最大的工业项目。目前,项目已通过层层评审,并获得工信部旗下检
测机构中国电子技术标准化研究院的量产良率检测报告。
国家重大专项01专项专家组组长、清华大学微电子所所长魏少军,国家重大专项01
专项专家组专家、中国科学技术大学特聘教授陈军宁等业内权威专家表示,这标志我国
在内存芯片领域实现量产技术突破,拥有了这一关键战略性元器件的自主产能。
DRAM即动态随机存取存储器,是芯片产业中产值占比最大的单一品类。2018年,中
国芯片进口额超过3000亿美元,这个单一品类就占到了其中的两成以上。其作为最常见
的内存芯片,被喻为连接中央处理器的“数据高速公路”,广泛应用于高性能计算... 阅读全帖
u****u
发帖数: 229
24
好象现在看到的C编译器都把变量放在stack上,把动态内存放在heap上。比如:
foo() {
int a,b[100];
int *pa;
pa = new int[200];
}
a,b[100],pa都是在stack上的变量,pa指向一块在heap上的内存。特别是b[100],是存在
stack上的100个int大小的内存块。
我的问题是,是不是C规定函数的变量“必须”放在stack上?比如,可以不可以有一个编
译器,把b[100]解释成一个存在stack上的int *, 指向一个heap上100个int大小的内存块
(当然,这块内存的分配,释放由编译器实现)。
这样的一个C/C++编译器会不会违反C的什么规定?可以不可以做这么一个compiler?请高
手详细解释一下吧。谢谢。
w***x
发帖数: 105
25
来自主题: Programming版 - 请教关于C++内存管理
我的情况是,不用kmalloc分配内存,而是上来就保留了一大块内存,从64M到512M不等
,然后自己管理内存,动态分配,但要保障每个object的内存是处在连续的空间内。所
以4M对我来说不算大,但对kmalloc可就要命了。
c****p
发帖数: 6474
26

is
static
1. 文件内可见?
2. 在全局变量区分配空间?
3. 文件内可见?
them?
理论上函数传参都是对实参的数据拷贝(而不是实参本身)进行操作。因而对函数参数
的任何修改在函数返回后都不会影响实参的值。传值不说;传址实际是传递某变量所在
的内存地址,通过修改该地址指向的内存空间就可以实质上修改该变量的值。一般情况
下,需要在函数中修改变量值的行为都会使用传址。
const,不可修改,一般放在只读数据区(.rodata),尝试对其修改可能会引发段错(好
像编译器实现决定的);volatile,访问被其限定的变量时必须从内存中获取,实质上
使该变量成为non-cachable,常见于被I/O访问的内存空间。
大多数十进制小数转化成二进制存储时会有截断误差,表面上相等的两个浮点数实际并
不相等,一般用误差小于某阈值来判定相等。
not at all
stack:FILO,可重入式函数必须的结构;heap,memory pool,由OS管理,用户通过
malloc/free和new/delete实现动态内存的申请和释放。
pree
这个不懂,猜下:task不可打断当前in... 阅读全帖
c****p
发帖数: 6474
27

is
static
1. 文件内可见?
2. 在全局变量区分配空间?
3. 文件内可见?
them?
理论上函数传参都是对实参的数据拷贝(而不是实参本身)进行操作。因而对函数参数
的任何修改在函数返回后都不会影响实参的值。传值不说;传址实际是传递某变量所在
的内存地址,通过修改该地址指向的内存空间就可以实质上修改该变量的值。一般情况
下,需要在函数中修改变量值的行为都会使用传址。
const,不可修改,一般放在只读数据区(.rodata),尝试对其修改可能会引发段错(好
像编译器实现决定的);volatile,访问被其限定的变量时必须从内存中获取,实质上
使该变量成为non-cachable,常见于被I/O访问的内存空间。
大多数十进制小数转化成二进制存储时会有截断误差,表面上相等的两个浮点数实际并
不相等,一般用误差小于某阈值来判定相等。
not at all
stack:FILO,可重入式函数必须的结构;heap,memory pool,由OS管理,用户通过
malloc/free和new/delete实现动态内存的申请和释放。
pree
这个不懂,猜下:task不可打断当前in... 阅读全帖
d********g
发帖数: 10550
28
来自主题: Programming版 - 动态语言在后端永远不会主流
动态的目前测试主要还是TDD和靠unittest,和静态的比类型检查这一步是差不少。典
型的支持first-class function的几个语言,传func和func()自动查不出来。但真正做
得好的,写动态语言其实就和写C/C++需要自己管理内存差不多,就是严格加严格,还
有修炼加修炼
不过动态语言的优点也是不少的,比如duck typing很爽。静态的搞duck typing就没这
么直接,理念不同而已
s*****t
发帖数: 89
29
实际情况是因为学习C语言浪费了很多时间,连基本的计算概念都没有,上来就指针啊
内存啊资源什么的,这些鬼东西没几个人真正搞清楚,尤其是很多半吊子为了显摆指针
飞来飞去的动不动就void*, NULL,这些破东西的数学定义什么?设计者也说不上来,
只能从实现意义上找答案。
举个例子,操作系统课的时候有个作业是动态内存分配算法还是别的什么,总之要用到
LinkedList,我的程序在gdb下面完全没有问题,可是run起来就是segfault,TA和老师
看了也看不出什么毛病,因为赶时间所以没有用内存泄露工具检查(话说过来,如果你
做内核你用什么工具来检查内存泄漏?只能panic了),最后只能算我过。
做个类比,说C语言是基本功就好像EE的人说模电是基本功一样,事实上如果做digital
你根本不需要懂得什么零点漂移之类的鬼东西,状态机、逻辑这些才是基本功。
学完C、C++之后,我根本不敢说自己掌握了这两门语言,谭浩强教你如何解鸡兔同笼
,C++什么都教什么都没教好,相比之下刚学Java就能写出各种有用的小工具,比如计
算器,聊天工具等等。而且在我学C语言的时候,清一色Turbo C,为了应付... 阅读全帖
h****g
发帖数: 105
30
来自主题: Programming版 - 弱问内存的问题
我的理解是这样:
静态数组是局部的,当这个数组所在的函数调用完成了,就会弹栈,你这个静态数组就
不存在了,它被自动回收了。此外静态数组直接被编译器分配好放在栈里,这个大小通
常会有限制,比如在vc编译器里这个限制往往会是1M左右。
而动态数组是new出来的,必须调用delete才会删除,所以如果一个函数如果返回数组
的话,这个数组一半都用动态的。此外动态数组理论上可以扩展到操作系统的整个用户
空间(一般是3G),这个相对而言不用太考虑大小。
因此使用什么样的数组,还是要结合你的应用来考虑。运行时的overflow应该是某些你
没注意到的逻辑错误在运行的时候超出了你申请的空间的大小。
s*****V
发帖数: 21731
31
来自主题: Military版 - 中国航天打造spaceOS
SpaceOS操作系统,中国航天造
2013-12-17
说起微软的Windows,苹果的Mac OS以及谷歌的Android,相信大家都不会陌生,它们都
是操作系统,即对计算机的各种资源进行管理的软件,是计算机能够运行的灵魂,美国
的一些航天器上用的就是VxWorks操作系统。但是,如果问起我国航天器上的计算机用
的是什么操作系统,也许很少有人知道。
事实上,中国航天科技集团公司五院从2001年就开始研发星载计算机特有的操作系统—
—SpaceOS,并在2006年首飞成功。此次的嫦娥三号探月任务控制计算机使用的是经过
升级和改进后的第二代星载计算机操作系统SpaceOS2。该系统首次亮相应用,就吸引了
众多关注的目光。
中国航天要有自己的操作系统
尽管与普通家用的操作系统设计原理相似,但“上天”的操作系统为了适应恶劣太空环
境,对安全性、可靠性等要求要苛刻许多。
地面使用的计算机死机了可以重启,坏了还可以换新的,但飞行器上的计算机开机了通
常就不会再关闭或重启。在轨运行时间较长的卫星寿命可达十几年,这也就意味着计算
机程序要同步运行十几年不出现问题。
更重要的是,对于航天这样的事关国... 阅读全帖
f***y
发帖数: 4447
32
http://laoyaoba.com/ss6/html/38/n-642538.html
手机App上轻轻一按,装载有国产控制芯片的打印机里就吐出需要打印的照片,速度之
快,让苹果的airprint也自叹不如。这其中的奥妙就在于芯片上使用了下一代存储器
PCRAM。
近日,记者从中科院上海微系统与信息技术研究所获悉,由该所宋志棠研究员课题组倾
注十几年心血,从基础研究做到产业化的PCRAM,如今已集成在芯片上售出1500万片,
实现销售额超过亿元。他们与中芯国际等企业,共同推进产业化,有望在每年市场价值
几十亿美元的嵌入式芯片存储器领域实现“弯道超车”。
挑战下一代存储器产业化
大到数据中心,小到一个小小芯片,都离不开动态内存(DRAM)。现在通用的DRAM有一个
致命的缺点,那就是怕断电———一旦断电,在内存中的数据就会瞬间消失,再也找不
回来。虽然也有可以随时保存数据的闪存(FLASH),可数据擦写、读取都很慢。所以,
尽管这些存储器在各种地方广泛使用,科学家总希望找到一种更完美的下一代存储器。
相变存储器(PCRAM)就是这样一种理想的存储器:它通过电流和磁场的开关,让存储材
... 阅读全帖
f***y
发帖数: 4447
33
听说这组有新突破,将发表science.
====
手机App上轻轻一按,装载有国产控制芯片的打印机里就吐出需要打印的照片,速度之
快,让苹果的airprint也自叹不如。这其中的奥妙就在于芯片上使用了下一代存储器
PCRAM。
近日,记者从中科院上海微系统与信息技术研究所获悉,由该所宋志棠研究员课题组倾
注十几年心血,从基础研究做到产业化的PCRAM,如今已集成在芯片上售出1500万片,
实现销售额超过亿元。他们与中芯国际等企业,共同推进产业化,有望在每年市场价值
几十亿美元的嵌入式芯片存储器领域实现“弯道超车”。
挑战下一代存储器产业化
大到数据中心,小到一个小小芯片,都离不开动态内存(DRAM)。现在通用的DRAM有一个
致命的缺点,那就是怕断电———一旦断电,在内存中的数据就会瞬间消失,再也找不
回来。虽然也有可以随时保存数据的闪存(FLASH),可数据擦写、读取都很慢。所以,
尽管这些存储器在各种地方广泛使用,科学家总希望找到一种更完美的下一代存储器。
相变存储器(PCRAM)就是这样一种理想的存储器:它通过电流和磁场的开关,让存储材
料在晶体和非晶体间切换。由于改变的是材料... 阅读全帖
s*i
发帖数: 388
34
【 以下文字转载自 Programming 讨论区 】
发信人: sci (ence), 信区: Programming
标 题: 那些用buffer overflow来attack的人是怎么计算出要覆盖的内存地址的阿?
发信站: BBS 未名空间站 (Wed Mar 23 20:58:01 2011, 美东)
自己也用过好几个exploit的程序,搞fedora获得root。但是不知道那些牛人们,用
buffer
overflow来attack的人是怎么计算出要覆盖的内存地址的阿?
难道那些heap ram地址不是动态的么?怎么能那么精准的计算出需要覆盖的位置阿?
g***t
发帖数: 7544
35
系统分配内存是动态的。它认为2.25G足够了,就将多余的临时分配给了显卡。你运行
一个大内存的程序试试。
w***g
发帖数: 5958
36
来自主题: Programming版 - java的内存管理真是气死我了
我用了4000! int[]不能动态长的!等下把16G内存全都用上试试。
我的问题其实很简单。最多500,000个128维浮点数特征向量,两两比较距离,算每个
特征向量的100个最近点。我估算了一下实际用到的内存也就1G都不到:
特征向量: 500,000 * 128 * 4 = 256M
100个最近点: 500,000 * 100 * (4 + 8) = 600M (每个点保存8位id和4位距离)。
我就不知道怎么用java编出来overhead能那么大。
s*****V
发帖数: 21731
37
来自主题: Programming版 - 中国航天打造spaceOS (转载)
【 以下文字转载自 Military 讨论区 】
发信人: saturnV (土星五号), 信区: Military
标 题: 中国航天打造spaceOS
发信站: BBS 未名空间站 (Tue Dec 17 12:51:11 2013, 美东)
SpaceOS操作系统,中国航天造
2013-12-17
说起微软的Windows,苹果的Mac OS以及谷歌的Android,相信大家都不会陌生,它们都
是操作系统,即对计算机的各种资源进行管理的软件,是计算机能够运行的灵魂,美国
的一些航天器上用的就是VxWorks操作系统。但是,如果问起我国航天器上的计算机用
的是什么操作系统,也许很少有人知道。
事实上,中国航天科技集团公司五院从2001年就开始研发星载计算机特有的操作系统—
—SpaceOS,并在2006年首飞成功。此次的嫦娥三号探月任务控制计算机使用的是经过
升级和改进后的第二代星载计算机操作系统SpaceOS2。该系统首次亮相应用,就吸引了
众多关注的目光。
中国航天要有自己的操作系统
尽管与普通家用的操作系统设计原理相似,但“上天”的操作系统为了适应恶劣太空环
境,对安全性、... 阅读全帖
T********i
发帖数: 2416
38
其实我的要求比较特殊。第一,dedicated application server。专机专用。第二,
memory不是问题,事实上所有page都是强制lock的。不可能swap。第三,大多数memory
allocation都是预先分配好的。永远不需要释放。第四,不需要实时的部分直接用STL
就好了。第五,需要一些实时的memory management。
因此我不需要overload new operator。我需要自己的STL allocator就好了。假定你不
太在乎动态内存的分配效率,做一个保证几条指令完成的方案易如反掌。
注意,我还假定内存肯定足够多。其实这个很容易保证。内存的上限也很容易证明。
这个架构其实能推广到任何应用。
a****l
发帖数: 8211
39
其实使用全局变量没有什么大不了的.从根本上说,任何变量最后总要放一个地方,不是
全局的静态变量,就是局部的动态变量跳来跳去,更加难以检测.对这种高可靠性要求的
系统来说,使用全局静态变量避免动态内存分配的各种drama也是不错的选择.
其实关键问题是码工笨没有责任心,全局变量用的正确一样没有任何问题,关键是有大批
的低素质码工在那里瞎搞,所以系统设计师才想出各种高级的方法限制这些人的胡作非
为.简单的说,就是人笨/懒怪刀钝.
不要说什么日本人精工细作了,我们最近是吃够日本人的苦头了.简单的运一个机器,就
是不在箱子里面塞好固定,结果一路上运过来就撞坏了,还得运回去翻修,还要我们出钱,
什么世道阿.小日本居然还不买运输的保险,什么人啊,不负责的到极点了.中国随便什么
山寨厂最次也不过如此吧?

metric,
The
Barr
make
a****l
发帖数: 8211
40
其实使用全局变量没有什么大不了的.从根本上说,任何变量最后总要放一个地方,不是
全局的静态变量,就是局部的动态变量跳来跳去,更加难以检测.对这种高可靠性要求的
系统来说,使用全局静态变量避免动态内存分配的各种drama也是不错的选择.
其实关键问题是码工笨没有责任心,全局变量用的正确一样没有任何问题,关键是有大批
的低素质码工在那里瞎搞,所以系统设计师才想出各种高级的方法限制这些人的胡作非
为.简单的说,就是人笨/懒怪刀钝.
不要说什么日本人精工细作了,我们最近是吃够日本人的苦头了.简单的运一个机器,就
是不在箱子里面塞好固定,结果一路上运过来就撞坏了,还得运回去翻修,还要我们出钱,
什么世道阿.小日本居然还不买运输的保险,什么人啊,不负责的到极点了.中国随便什么
山寨厂最次也不过如此吧?

metric,
The
Barr
make
j*******2
发帖数: 386
41
来自主题: Military2版 - 龙芯3B流片成功[zz]
小菊啊,就不要丢人了。
并行计算有很多种方式,
Data parallel
Task parall
streaming parallel
还有hybrid的
GPU也就只能在Data Parallel搞一搞。而且有很多限制的,比如不能有函数指针,动态
内存。内存访问要求比较规整,连续。不能有很多分支
你就不要到处丢人了。
a****n
发帖数: 1887
42
来自主题: JobHunting版 - 一道 C++ 的题。
对了一半, 只分配了内存块, 如果class不是POD(有vptr)或者含有动态内存指针, 这个array还是没法用
x****u
发帖数: 44466
43
来自主题: Programming版 - 再问一个free()的问题
看一下数据结构里面动态内存分配一节就明白了。
free后内存可以访问不是必然发生的。
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)