生活分享

  • 首页
HETAO
业余码农、业余机械爱好者
未分类

memory align/内存对齐 golang和csharp

为什么要内存对齐 总线读取总是32位的倍数读取的,对齐算法有助于提升程序的运行效率,大部分的语言都在底层实现了这部分的支持,只是实现有所不同。 golang的对齐和c#的对齐 两者比较不太公平,毕竟csharp要先转一次IL。他们的底层数据类型为了内存对齐都会采用padding的方式,但是又有不同,比如bool类型,csharp中是4个字节,而golang是一个字节。理论上bool只需要一个bit来表示true和false,但是对齐理论告诉我们你起码得是一个字节为最小的单位,所以八个bool也是一个字节的大小,然后…

2022年1月19日 0条评论 1316点热度 0人点赞 jinzhao 阅读全文
未分类

在使用Map这种数据类型时需要注意的几个问题

因为性能的原因map一般实现不支持写的并发,如果是并发场景需要确认map的实现是否支持或者更换为支持的实现。 map的值类型一般不需要关心,但是键很重要,涉及到hash的原理和实现的算法,所以键的特殊类型会影响性能。 触发扩容,一般实现中扩容并不会影响性能,大部分算法都是在插入和删除时进行,但是有的算法会主动进行迁移,比如redis,内存也会产生波动,对于生产环境特别需要注意。 各种实现之间的差异除了架构上,算法也会有,主要体现在冲突key的解决方法上,但是各种方法各有利弊,所以能分成多个map就不要塞到一起去。 …

2022年1月19日 0条评论 1396点热度 0人点赞 jinzhao 阅读全文

jinzhao

这个人很懒,什么都没留下

最近评论
jinzhao 发布于 3 年前(05月31日) 谢谢提醒,我是根据作者的评论操作的,可能后来改了吧。 https://forum.openmedia...
jinzhao 发布于 3 年前(05月31日) 这种事碰到蛋疼,主要是很多开源的开发者来一句等我有了m1的本子再说,哈哈
匿名 发布于 3 年前(05月08日) omv 升级的命令应该是 omv-release-upgrade
匿名 发布于 3 年前(04月18日) 我前两天手贱,升级了12.3,pyenv 无法安装任何版本python,pyinstaller 也遇...
jinzhao 发布于 5 年前(06月04日) 我是部署在docker中的

COPYRIGHT © 2022 生活分享. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备14004285号-1