文章教程

hyengine - 面向移动端的高性能通用编译/解释引擎

一 背景简介手机淘宝客户端在历史上接过多种多样的脚本引擎,用于支持的语言包括:jspythonwasmlua,其中js引擎接过的就有:javascriptcoreduktapev8quickjs 等多个。众多的引擎会面临共同面临包大小及性能相关的问题,我们是否可以提供一套方案,在能支持业务需求的前提下,用一个引擎来支持尽可能多的语言,能较好的兼顾包大小较小和 …

面试官:Java对synchronized锁的实现与优化

早期的synchronized锁在Java 1.5之前,多线程并发中,synchronized一直都是一个元老级关键字,而且给人的一贯印象就是一个比较重的锁。为此,在Java 1.6之后,这个关键字被做了很多的优化,从而让以往的“重量级锁”变得不再那么重。synchronized主要有两种使用方法,一种是修饰代码块,一种是修饰方法。这两种用法底层究竟是怎么实 …

编程常用变量缩写快查表

缩写遵循通用规范,只使用显而易见的缩写,不要滥用,不要有歧义。变量名常用缩写applicationappargumentsargsaverageavgaddressaddrauthorityauthorizeauthattributeattrasynchronizationasynbuttonbtnbufferbuffcommandcmdcomparecmp …

Redis源码sds学习之四-sdscpy和sdsdup函数

Redis源码sds学习之四-sdscpy和sdsdup函数 本系列文章阅读的源码都是Redis-3.0.3版本,编译时使用的是libc库。本次学习 sds.c 中的 sdsrange 函数,该函数在sds测试main函数中,被赋予不同的参数调用多次。在sds动态字符串学习二中,学习了sdscat函数,该函数是字符串拼接函数,C语言中是strcat函数是字符 …

C语言实现hashMap

图中,紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中。下载链接:download.csdn.netdownloadsxf106170062513101710供参考学习hashMap.h#ifndef _HASHMAP_H#define _HASHM …

利用autotool工具编译和安装

平时自己写的程序多是直接写Makefile,大型的开源C代码,多是通过autotool工具来生成,需要学习下。为了具备通用性,用工作中实际程序来测试。一 用autoscan生成configure.scan步骤很简单,解压程序后,在源码目录运行autoscan就会生成configure.scan 如下:#autoscan# ll configure.scan …

10张图22段代码,万字长文带你搞懂虚拟内存模型和malloc内部原理

成功是急不来的。不计较眼前得失,将注意力真正着眼于正在做的事情本身,持续付出努力,才能一步步向前迈进,逐渐达到理想的目标。不着急,才能从容不迫,结果自会水到渠成。大家好,我是程序喵!摊牌了,不装了,其实我是程序喵辛苦工作一天还要回家编辑公众号到大半夜的老婆,希望各位大哥能踊跃转发,完成我一千阅读量的KPI(梦想),谢谢!咳咳,有点跑题,以下是程序喵的废话, …

深入浅出虚拟内存

从这一系列文章翻译并结合自己理解提炼出来的,代码都自己实践过,有时间的也可以直接阅读英文原链接Hack The Virtual Memory: C strings & proc Hack the Virtual Memory: drawing the VM diagram Hack the Virtual Memory: malloc, the heap & …