深入理解RunLoop

转载自深入理解RunLoop, ibireme | 2015-05-18 | iOS, 技术

RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。

阅读全文 »

转载 C++常见避坑指南

原文链接

C++ 从入门到放弃?本文主要总结了在 C++ 开发或 review 过程中常见易出错点做了归纳总结,希望借此能增进大家对 C++ 的了解,减少编程出错,提升工作效率,也可以作为C++开发的避坑攻略。

阅读全文 »

原文地址

C++ 异常处理机制 try catch 在快手 App 内突然失效,引发大量未捕获异常导致的崩溃。本文介绍稳定性团队排查此次问题的过程,问题的根本原因以及修复规避方案,最后梳理异常处理流程,知其然,知其所以然,方能在问题出现时冷静应对。

阅读全文 »

原文地址

最新发布的 QQ 9 自上线以来,流畅度方面收获了众多用户好评,不少用户戏称 QQ 9 “傻快傻快”的,快到”有点不习惯了都**”**。

作为庞大量级的应用,QQ 9 从哪些方面做了哪些优化,使得用户能够明显感觉到流畅度的提升?本文将详细介绍
QQ 9 流畅背后的技术实现,以及在全流程做的性能优化探索,为应用提升流畅度提供可复用的经验。

阅读全文 »

[转载] JIT真的比解释执行快么——关于JS引擎的一些热门话题

原文地址

在编程语言的世界中,如何高效地执行代码一直是一个热门话题。随着脚本语言的普及和性能需求的提升,解释执行和即时编译(JIT)成为了两种常见的代码执行方式。本文探讨了这两种技术,通过详细的实例和深入的分析,为我们揭示了它们的工作原理、性能差异以及各自的优缺点。

希望这篇文章能够帮助你更好地理解编程语言执行的技术世界,激发你对高效代码执行的深入思考,并在实践中应用这些宝贵的知识。

阅读全文 »

[转载] 深入理解内存分配

原文地址

相信大家在学习C语言的时候,malloc是最早遇到的几个方法之一,这里就来深入的了解下,macOS/iOS中用户空间的内存分配。

阅读全文 »

[转载] QQ 客户端性能稳定性防劣化系统 Hodor 技术方案

转载: 原文地址

防劣化是比较经典的技术话题,手 Q 的防劣化系统从 2021 年 10 月开始投入研发,从 0 到 1 迭代了将近三年的时间,已经达到了业界先进水平。为了守护好手 Q 性能稳定性的门禁,我们将其命名为 Hodor 系统,即 Hold the door!

从验证可行性跑通最小闭环,到搭建群控机架一次次为集群扩容,实属不易。其中涉及到大量的方案讨论甚至推翻,很多思路和实现细节是业界找不到公开方案的,只能自己摸索。本文详细分享了手 Q 防劣化系统的构建链路,相信对业界和开发者们都有较高的借鉴意义。

阅读全文 »

产品提了一个需求, 有一个屏幕浮层, 里面有个列表, 滑动列表时候整个分层要能跟着在屏幕上挪动, 同时浮层上方还有个拖动区域, 也要能拖曳, 我们知道 UITableView 自己本身可以相应滚动手势, 列表上方可以通过一个UIPanGestureRecognizer手势来拖曳, 但是怎么让两者之间相互适配, 更丝滑的实现滚动效果, 还是花了很多时间, 处理的细节比较多, 比如:

阅读全文 »

开发需求中, 产品经常希望知道列表中的某个元素是不是曝光了, 但是曝光的规则又会给的很复杂, 比如

  1. 页面出现且数据加载好 需要曝光
  2. 刷新页面 数据没变不曝光
  3. 进入下一个页面, 再回来, 曝光
  4. 滑动列表, 元素不可见, 然后滑回来, 又变的可见了, 需要曝光
  5. 退后台 再回到应用, 需要曝光

甚至不同的产品不同的业务这里曝光规则都会不一样, 如果每个业务自己去单独实现, 又会有很多重复代码.

阅读全文 »

需求需要实现一个轻摇手机时候, 页面背景左右挪动, 同时图片翻转的效果, 一般我们会直接用到CMMotionManager, CMMotionManager 是 Core Motion Framework 的一部分,它可以让我们方便地获取设备的运动数据,如加速计数据、陀螺仪数据、磁力计数据等。
但是 这个工具中能使用的传感器东西比较多, 最终我是使用 CMAcceleration.gravity 设备受到的重力的加速度 这个数据来完成的.

阅读全文 »