最近遇到C#的两个坑

  1. 在一个密集的for循环里面,ManagedC++包装的轻对象,不能被GC释放
    轻对象是指,在MC++看到只有一个Native的指针,真正的对象在C++侧,可以是很占用内存的一个地方。
    但是,GC就是不释放,知道for循环结束之后,才慢慢释放。原因未明,解决办法是手动调用Dispose。
  2. Android使用C++的结构体的时候出现 signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr错误。
    C++结构体使用了pack(1),也就是一字节对其。可能触发了Android的非对齐的地址访问。但是,自己手写了各种非对齐的情况,依然无法重现问题。原因依旧未明。解决办法是去掉pack(1)。
    怀疑其实是有很小的内存越界,放开pack(1)之后,内存之间的空隙增加了,减少了越界触发的异常。待查证实!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,089评论 25 709
  • 被文同时发布在CSDN上,欢迎查看。 APP内存的使用,是评价一款应用性能高低的一个重要指标。虽然现在智能手机的内...
    大圣代阅读 4,882评论 2 54
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 作为一个《权力的游戏》深度中毒患者,我写几个字儿,来表达我对还没有出现剧情的深度焦虑,以及稍微的剧透。
    雅各布666阅读 236评论 0 2
  • 3月11-12日,我来到了苏州,参加F44双证班学习。 为什么要参加双证班呢? 人际敏感度弱爆了,工作中需要更多的...
    小树束阅读 305评论 1 1