首页 » 技术文章

网络问题分析之抓包与netstat.md

 

一、抓包能解决什么问题 1.1、客户端与服务器网络连接异常的问题 客户端调用connect连接服务器,在程序中进入异常流程,即连接失败。此时可以通过抓包工具来分析是客户端还是服务器的问题。连接建立阶段的抓包交互为: 11:30:27.998097 IP GZ- … 阅读全文

luahook获取lua性能

 

背景 目前网络上出现的一些检测lua性能的开源工具,主要利用luahook技术,在lua进入退出函数设置hook,或在每行lua代码执行时安装hook,来得到某个函数或某行lua代码的执行开销。最近项目接触了这一部分内容,这里简单介绍下学到的一些点。 实现原理 … 阅读全文

热修复框架AndFix【源码阅读】

 

前言 AndFix是阿里巴巴开源的Android热修复框架。其基本原理是利用JNI来实现方法的替换,以实现Android APP的热修复,即无需发版即可临时修复在线BUG。 热修复技术有很多种,AndFix采取的native方法替换方案,优点是即时生效,无性能 … 阅读全文

JVM源码阅读-本地库加载流程和原理

 

前言 本文主要研究OpenJDK中JVM源码中涉及到native本地库的加载流程和原理的部分。主要目的是为了了解本地库是如何被加载到虚拟机,以及是如何找到并执行本地库里的本地方法,以及JNI的 JNI_OnLoad 和 JNI_OnUnLoad是何时被调用的 … 阅读全文

JVM源码阅读-Dalvik类的加载

 

前言 本文主要研究Android dalvik虚拟机加载类的流程和机制。目的是了解Android中DEX文件结构,虚拟机如何从DEX文件中加载一个Java Class,以及到最终如何初始化这个类直至可被正常使用。​ [Java]类的加载 在Java的世界里,所 … 阅读全文

Google Breakpad 学习

 

一. BreakPad简介 Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。 Breakpad由三个主要组件: client,以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 symbol dumper, … 阅读全文

Google Acra源码研究报告

 

日期:2017-03-24 一. 项目简介 ACRA是Google推出的开源Android应用Crash reports框架。本文主要针对其最新的源码(v4.9.2)进行学习研究,目的是了解在Android平台上处理未捕获异常,并在崩溃时收集各种设备及上下文信 … 阅读全文

【源码解读】lua源码分析之编译器部分

 
3

lua虚拟机简介 lua作为嵌入式脚本语言,具有轻量、性能高,与宿主语言无缝接入等优点,现已广泛应用于各个领域,包括游戏服务器、甚至web服务器部分组件也已接入lua,例如nginx+lua作为接入服务器portal,已经应用的较为成熟了。 两个阶段 lua虚 … 阅读全文

【源码解读】mono内存管理及gc源码阅读

 

简介 Mono支持内存自动回收,因为MONO集成了内存回收算法。在1.X到2.X的版本中,MONO集成了贝母内存管理及回收算法;而在3.X或更高版本中,则开始启用SGEN内存管理及回收算法。本周研究了2.6.X版本的BOEHM(贝母)的内存管理及GC算法部分代 … 阅读全文

【源码解读】luajit源码入门

 

简介 luajit也是lua代码的一款虚拟机,相比较原生lua虚拟机而言,其优势为性能优越,同时支持ffi,能非常方便的集成C语言实现的模块,而这在原生lua虚拟机中集成需要编写较多的接口代码。 背景 最近尝试使用luaprofiler工具来测试lua层代码的 … 阅读全文