一次 CPU 问题的排查
前言
最近来了个新环境,做了第一个需求——直播答题
。
这边的风格大致就是:先在能使用的库的基础上快速完成需求,整个开发时间大概在2-3周,客户端总共俩人
,我主要负责直播间内的业务逻辑。
最近来了个新环境,做了第一个需求——直播答题
。
这边的风格大致就是:先在能使用的库的基础上快速完成需求,整个开发时间大概在2-3周,客户端总共俩人
,我主要负责直播间内的业务逻辑。
https://www.youtube.com/watch?v=Mj5P47F6nJg
这个演讲太棒了,演讲人是 Roman Elizarov - Project Lead for the Kotlin Programming Language
按照他的 PPT 我自己总结了一下
首先 kotlin 的协程库 = 线程池 + 任务调度,但是这个调度过程比较复杂,而且整个过程也并没有直接接管 JVM 或者 操作系统层面的东西,所以也没有 go routines 的神奇的抢占调度。 然后只有一个关键字 suspend, suspend 函数机制
又好久好久没更新了,主要是最近研究的东西对我来说都比较难,内功不够 的情况下,写不出东西来。
最近本来是打算捡起来 C++ 的(也 Hello World 了一下 Rust,这个语言感觉对于以前写 Java 的人来说, 看起来理解起来都好别扭啊···)。
鉴于好多人对于跨端技术觉得玄之又玄,我自己虽然没有实际从0到1的写过跨端框架,但是使用过 Yoga(React-Native 的布局引擎)做过一些简易的跨端的事且后来使用过 Weex,对于跨端研究过一阵,所以来科普一下。
RxJava 是一个经常让人出错的库,有的同事第一次接触完全搞不懂,个人感觉是没抓住核心的理念(其实我个人对于 RxJava 是有偏见的),抓住核心的理念应该会很好理解,其实就是一个事件流的问题。
内存泄漏对于日常简单的业务开发而言 很常见也不常见
(如果你还是说 Handler
那一套的话,除非你使用 Handler 做 timer
,否则 总有一个时间
会释放所谓的内部类引用的 Activity 等对象)。一般作为业务开发能制造内存泄漏的情景,我遇到的有几种(当然可能存在更多的情况):
Handler、Looper、MessageQueue 是老生常谈的话题了,你可能会觉得没什么好讲的啊,网上文章也一堆。
这里我有几个问题问一下,如果你都很清晰,那就完全不需要看此文。
最近看了点 MMKV 的代码,其核心就是通过 mmap 来读写文件。当然还有多进程、序列化、扩容重排 key等问题(这些随便找篇文章都有讲)。本文主要通过 mmap 实现简单的文件的读写。
前几天看到同事在讨论 动态代理
和 类加载器
的一些问题,其实这些技术无论是客户端还是后端都已经用烂掉了。
动态代理 cglib
和 jdk.Proxy
基本是 Java 后端面试的 “八股” 送分题。
Android 的应用层架构,其实一直在缓慢的进步,但是 Android 开发工程师却很少有进步。比如我,直到 2021 年才开始使用 dataBinding。
我初步在 RecyclerView 的 item 中试用了一下,感觉还是挺不错的。