240 发简信
IP属地:黑龙江
  • 120
    简谈二进制重排

    二进制重排 二进制重排其实并不是什么特别新颖的技术。 目的 二进制重排(layout)的目的在于将hot code聚合在一起,即使得最经常执行的代码或最需要关键执行的代码(如...

  • 120
    arm64e符号翻译与PAC问题

    arm64e由于引入了PAC机制,导致符号地址发生了巨大变化。也给堆栈回溯带来了问题。 背景 从去年新iphone发布后,我们陆陆续续发现crash上报组件上报的crash总...

  • 120
    探索子线程autorelease对象的释放时机

    前言 本文csdn地址:http://blog.csdn.net/game3108/article/details/51147949今天在给同事讲autorelease对象释...

  • 我所理解的ucontext族函数

    今天,我要写一篇文章,好好来说一下我所理解的ucontext族函数。 NAMEgetcontext, setcontext - get or set the user con...

  • 120
    Crash优化与建议

    本文对iOS应用上经常遇到的Crash(常规signal触发的闪退)进行分析,并结合笔者的优化经验,给出Crash分析和建议。 一、Crash与信号 1.1 Crash是如何...

  • Crash与信号

    什么是信号 信号(signal)是一种XPC通信方式。signal是一个4字节的无符号整形数字,在iOS/OSX中定义了31个已知的信号;在Unix系统中,crash仅仅是s...

  • Objective-C -- isEqual与hash

    为什么要有isEqual方法 对于对象类型, ==运算符比较的是对象的地址,即是否为同一对象。 对象地址相等不代表对象相等,即对象地址相等是对象相等的必要非充分条件。 isE...

  • 120
    UIViewController 生命周期

    生命周期的图如下: ios 视图的生命周期(View Life Cycle) 事件发生的须序非常重要,这好让程序员能在适当的时机执行事件,此时了解view life Cycl...

  • @jmstack 还有一点,如果编译器优化时,将局部变量复用了,比如由于复用那么会存在对一个已经再被的线程release的指针,再调用release,那么多线程时并发时,也可能是会有问题。所一定要严格分析,那就从反汇编去推。仅仅是写的代码不一定就是最可靠的,还要看编译器转为汇编时干了什么;这里目前都是黑盒。

    不安全的weak变量

    对于存在多线程释放并且并发访问的对象,不建议使用weak修饰或访问。因为weak的底层实现并不完全是线程安全,否则较容易导致over-release而crash。 一、问题 ...

  • @jmstack 嗯,我最后的结论不是基于源码得出的。是反过来推的。从苹果给的源码看,没有地方能明显发现有什么问题。但是从运行时结论反推,有较大概率认为多线程销毁和使用时有问题。所以这里并没有非常严谨的去证明是还不是。也有一部分猜测。

    不安全的weak变量

    对于存在多线程释放并且并发访问的对象,不建议使用weak修饰或访问。因为weak的底层实现并不完全是线程安全,否则较容易导致over-release而crash。 一、问题 ...

  • 业务的bug,的确不合理啊。

    __block不适合多线程并发

    objc的很多设计,从底层实现上都不完全是线程安全的,这也导致在一些极端的并发情况下,会引起竞争导致的内存访问错误问题。之前分析过_weak的设计不是多线程安全的,最近又踩坑...

  • __block不适合多线程并发

    objc的很多设计,从底层实现上都不完全是线程安全的,这也导致在一些极端的并发情况下,会引起竞争导致的内存访问错误问题。之前分析过_weak的设计不是多线程安全的,最近又踩坑...

  • 120
    iOS内存深入探索之VM Tracker

    什么是VM Tracker VM Tracker是Xcode Instruments自带的一个内存分析工具,可以帮助你快速查看虚拟内存块的用量状态以及根据虚拟内存块的tag进...

  • 120
    iOS内存深入探索之内存用量

    前言 我们在查看iOS应用内存时,最常见的手法就是查看左边的Debug Navigator。不知你是否也曾困惑于这个内存究竟包括哪些部分,或者使用Allocations模版观...

  • 120
    Thunk程序的实现原理以及在iOS中的应用

    导读:阅读文本你将能够了解到C标准库对快速排序的支持、简单的索引技术、Thunk技术的原理以及应用、C++虚函数调用以及接口多重继承实现、动态库中函数调用的实现原理、以及在i...