Redian新闻
>
感觉G家面试还是和面的组工作内容略微相关的
avatar
感觉G家面试还是和面的组工作内容略微相关的# JobHunting - 待字闺中
d*x
1
chrome组就聊到了怎么实现小对象的memory pool。。。
avatar
p*2
2
确实是相关的。有相关背景拿offer更容易
avatar
d*x
3
您还没动手啊。。

【在 p*****2 的大作中提到】
: 确实是相关的。有相关背景拿offer更容易
avatar
p*2
4

北边没让我面,南边被我剧了

【在 d**********x 的大作中提到】
: 您还没动手啊。。
avatar
g*e
5
小对象有什么特别吗?
我能想到的就是把他们放在一个pool里
avatar
d*x
6
比如说每个对象都是4 bytes的,如何实现malloc和free

【在 g*********e 的大作中提到】
: 小对象有什么特别吗?
: 我能想到的就是把他们放在一个pool里

avatar
r*e
7
让malloc/free专门维护一个4B的free list?
我知道有些custom mem allocator分专门的大中小obj free list
更多细节就不知道了

【在 d**********x 的大作中提到】
: 比如说每个对象都是4 bytes的,如何实现malloc和free
avatar
g*e
8

我能想到的是 让程序自己维护一个全局的buffer 用这个buffer来作为缓存。这样
malloc只要在buffer里malloc即可 不需要system call。buffer满了就整个copy到内存
里 清空buffer。
读/free的话首先确定要读的obj在不在缓存里,在就直接读,不在就swap成包含obj的
缓存。
tricky的地方是需要确定obj在缓存里还是只在内存里。

【在 r*******e 的大作中提到】
: 让malloc/free专门维护一个4B的free list?
: 我知道有些custom mem allocator分专门的大中小obj free list
: 更多细节就不知道了

avatar
s*n
9
malloc一个对象的overhead好想是32bytes.这个大家可以放狗。
那么着就太贵了。而且会造成内存碎片。
如果很小。不如做成固定大小的slot. 改external fragment为internal fragment.
另外一个问题是garbage collection.改成page table方式加上bitmap.
应该不用compact。
基本还是OS书上的内容吧。

【在 g*********e 的大作中提到】
: 小对象有什么特别吗?
: 我能想到的就是把他们放在一个pool里

avatar
s*k
10
贵的还不止这个,malloc后面可能用到的system call比如brk,还有MMAP之类的都挺贵
的。

【在 s*****n 的大作中提到】
: malloc一个对象的overhead好想是32bytes.这个大家可以放狗。
: 那么着就太贵了。而且会造成内存碎片。
: 如果很小。不如做成固定大小的slot. 改external fragment为internal fragment.
: 另外一个问题是garbage collection.改成page table方式加上bitmap.
: 应该不用compact。
: 基本还是OS书上的内容吧。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。