- 博客(215)
- 资源 (34)
- 收藏
- 关注
转载 左耳朵耗子 | 程序员如何用技术变现?
正文1 写在前面 程序员用自己的技术变现,其实是一件天经地义的事儿。写程序是一门“手艺活儿”,那么作为手艺人,程序员当然可以做到靠自己的手艺和技能养活自己。 然而,现在很多手艺人程序员却说自己是“码农”,编码的农民工,在工作上被各种使唤,各种加班,累得像个牲口。在职业发展上各种迷茫和彷徨,完全看不到未来的希望,更别说可以成为一个手艺人用自己的技能变现了。 从大学时代帮人打...
2018-08-06 20:12:36
574
转载 学习MySQL优化原理,这一篇就够了
万字总结:学习MySQL优化原理,这一篇就够了!CHEN川 2017-09-28 09:32:09 3243说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文...
2018-07-13 15:05:24
693
转载 skynet源码分析 cluster与socketchannel
文章目录先看看clusterd服务的创建与初始化再从最上层的API分析cluster.opencluster.registerA向B请求然后得到B返回的过程A节点调用cluster.call发送消息给B节点B节点收到A节点的消息请求B节点收到A节点的消息返回cluster.query代理服务的实现skynet.forward_typecluster.proxy简单说说socketchannel的两...
2018-07-11 18:01:32
1530
1
转载 简明Vim练级攻略
AE附件上传》前言今天看到这篇文章,共鸣点非常多。它把Vim使用分为4个级别,目前我自己是熟练运用前面三级的命令,在培养习惯使用第四级。完全就是我这一年来坚持使用Vim的过程。所以不管怎么我要转载这篇文章。翻译自《Learn Vim Progressively》,原中文翻译出自《简明Vim练级攻略》。我进行了部分的排版工作,和文字删减以及所有图片本地化的工作。Vim的学习曲线相当的大,所以,如果你...
2018-07-04 16:11:05
310
转载 深入探究Lua的GC算法
对于内存的管理,是程序在应用的时候的必需知识点,《Lua设计与实现》中对Lua语言的GC原理做了一个详细的讲解,云风的blog也对其进行了详尽的讲解Lua GC 的源码剖析 系列给出作者 @codedump 在github上的lua源码链接:https://github.com/lichuang/Lua-5.1.4-codedump这儿就继续做《Lua设计与实现》的阅读笔记,对Lua GC原理及其...
2018-06-15 15:17:25
4337
转载 GC算法和种类
GC算法和种类GC(Garbage Collection)算法和种类综述:为方便阅读和整体把握,目前整个jvm学习整理分为五篇,建议按顺序学习,如下:第一篇 ——JVM内存模型第二篇 (本篇) —GC算法和种类第三篇 —— 垃圾收集器及GC参数第四篇 —— 调优工具使用介绍第五篇 —— jvm面试常见问题注:本篇只介绍JVM垃圾回收(篇幅有些长,耐心看完收获很大的)================...
2018-06-15 15:15:55
282
转载 Lua中的线程和状态
1、概述 线程(thread)作为Lua中一种基本的数据类型,它代表独立的执行线程(independent threads of execution),线程类型是实现协程(coroutines)的基础,注意这里的线程类型不要与操作系统线程混淆,Lua的线程类型是Lua虚拟机实现一种数据类型。从Lua脚本来看,一个协程就是一个线程类型,比如:[cpp] view plain copylocal...
2018-06-08 17:21:04
3265
转载 Lua 性能剖析
Lua 性能剖析在这篇文章中:引言Lua的基本类型Table的实现Table查找性能Table空间占用对比虚拟机的主要构造Lua函数调用的性能Lua中的全局变量存取协程切换的性能垃圾回收总结参考资料引言Lua语言在游戏行业大受欢迎,因运行效率高(相比于其他脚本语言),热更方便等原因被广泛应用。在IEG,情况略有不同,C++大行其道。有的小伙伴(包括本文作者)想在现有c++系统中引入lua,被挑战的...
2018-06-08 17:18:21
9332
转载 TCP的11种状态
2、全部11种状态 2.1、客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT 。 2.2、服务器独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK 。 2.3、共有的:(1)CLOSED (2)ESTABLISHED 。TCP状态迁移大家对n...
2018-06-07 18:06:57
831
转载 UDP数据包丢包
UDP数据包丢包UDP数据包的理论长度udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个字节。由于udp包头占8个字节,而在ip层进行封装后的ip包头占去20字节,所以这个是udp数据包的最大理论长度是2^16-1-8-20=65507。然而这个只是udp数据包的最大理论长度。首先,我们知道...
2018-06-07 16:09:54
1564
转载 tcp和upd粘包、拆包、ip分片问题
我们都知道TCP属于传输层的协议,传输层除了有TCP协议外还有UDP协议。那么UDP是否会发生粘包或拆包的现象呢?答案是不会。UDP是基于报文发送的,从UDP的帧结构可以看出,在UDP首部采用了16bit来指示UDP数据报文的长度,因此在应用层能很好的将不同的数据报文区分开,从而避免粘包和拆包的问题。而TCP是基于字节流的,虽然应用层和TCP传输层之间的数据交互是大小不等的数据块,但是TCP把这些...
2018-06-07 15:28:01
9639
1
转载 TCP流量控制和拥塞控制
TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;2. “滑动...
2018-06-07 14:47:07
837
转载 skynet源码分析_master_slave模式
master_slave模式文章目录带着问题去了解从bootstrap说起master/slave模式的C层面的初始化查看相关各服务的启动工作简单说说harbor服务的消息处理函数cmaster服务的工作cslave服务的工作多节点字符串地址的注册查询一个全局字符串地址从skynet.send函数看多节点模式消息的发送先看数字地址的情况再看字符串地址的情况skynet.uniqueservice的...
2018-05-29 17:33:33
1881
转载 探索Lua5.2内部实现:Garbage Collection
Lua5.2采用垃圾回收机制对所有的lua对象(GCObject)进行管理。Lua虚拟机会定期运行GC,释放掉已经不再被被引用到的lua对象。基本算法基本的垃圾回收算法被称为"mark-and-sweep"算法。算法本身其实很简单。首先,系统管理着所有已经创建了的对象。每个对象都有对其他对象的引用。root集合代表着已知的系统级别的对象引用。我们从root集合出发,就可以访问到系统引用到的所有对象...
2018-05-28 17:53:20
392
转载 Lua源码分析 -- 虚拟机以及指令解释
Lua首先将源程序编译成为字节码,然后交由虚拟机解释执行.对于每一个函数,Lua的编译器将创建一个原型(prototype),它由一组指令及其使用到的常量组成[1].最初的Lua虚拟机是基于栈的.到1993年,Lua5.0版本,采用了基于寄存器的虚拟机,使得Lua的解释效率得到提升, 1、指令系统与虚拟机和指令相关的文件主要有两个: lopcodes.c和lvm.c.从名称可以看出来,这两个文件分...
2018-05-28 16:55:37
7944
转载 组播方案multicastd
skynet 的新组播方案最近在做 skynet 的 0.2 版。主要增加的新特性是重新设计的组播模块。组播模块在 skynet 的开发过程中,以不同形式存在过。最终在 0.1 版发布前删除了。原因是我不希望把这个模块放在核心层中。随着 skynet 的基础设施逐步完善,在上层提供一个组播方案变得容易的多。所以我计划在 0.2 版中重新提供这个模块。注:在 github 的仓库中,0.2 版的开发...
2018-04-21 18:25:04
837
转载 skynet coroutine 运行笔记
skynet coroutine 运行笔记阅读云大的博客以及网上关于 skynet 的文章,总是会谈服务与消息。不怎么看得懂代码,光读这些文字真的很空洞,不明白说啥。网络的力量是伟大的,相信总能找到一些解决自己疑惑的文章。然后找到了这篇讲解 skynet 消息队列的文章(最新的 skynet 消息队列代码已经有更新,变得更简洁易读)。了解了 skynet 消息是如何派发的,就想知道消息被派发出去到...
2018-04-18 20:34:11
298
转载 skynet的master/slave 和 cluster
一、同一进程下的服务通讯和跨网络的通讯到底有什么不同进程内的内存是共享的,skynet 是用 lua 沙盒来隔离服务状态,但是可以通过 C 库来绕过沙盒直接沟通。如果一个服务生产了大量数据,想传给您一个服务消费,在同一进程下,是不必经过序列化过程,而只需要通过消息传递内存地址指针即可。这个优化存在 O(1) 和 O(n) 的性能差别,不可以无视。同一进程内的服务从底层角度来说,是同生共死的。Lua...
2018-04-04 11:04:50
2798
转载 模式匹配函数
模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmatch(返回查找到字符串的迭代器)这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的
2018-01-30 15:00:29
851
转载 Lua调用原理展示(lua的堆栈)
这篇文章我是 攒了好久 没写了,看了这篇文章好,我觉得可以帮助大家更容易了解lua的运行原理,与调用方法,若有错误也希望及时指正。希望可以帮助到你。(2.3中的Gif图,可以生动的表现过程)一、Lua虚拟机的栈1.1先简单介绍下Lua虚拟机的栈,如图:规则:①若Lua虚拟机堆栈里有N个元素,则可以用 1 ~ N 从栈底向上索引,也可以用 -1
2018-01-30 14:54:58
2558
3
转载 Skynet服务器框架(一) Linux下的安装和启动
引言:一直都是从事客户端的开发工作,最近抽了点时间想了解一下服务器开发的相关知识,一番博客瞎逛之后,发现了一个不错的框架,云风大神的 skynet开源服务器框架,这不仅仅是针对于游戏服务器开发的框架,更是一个通用的服务器基础框架。Skynet简介:Skynet 主要工作是管理注册服务,并开启多线程协调服务之间的调用和通讯。1.框架核心:根据云风博客的描述,S
2018-01-29 18:04:03
510
转载 skynet 控制台管理使用技巧
skynet 自带了一个控制台服务,可以很方便获取和调试 skynet 运行数据,而且可以热更新代码,所以,弄明白skynet控制台管理可以让你更好地使用skynet,甚至改进这个控制台服务,以满足不同业务需求。这个服务默认不会启动,需要你手动启动它,如下:skynet.newservice("debug_console", 8000)设计原因,调试控制台只监听本地地址 127.0.0.1 ,如果...
2018-01-23 15:21:02
575
转载 Lua脚本热更新
用途在生产环境上,总有可能出现不可预知的Bug,而通常修改好Bug仅仅又修改几句,停机维护的成本又太高,对于游戏来说,通常每个服就是单独的进程,也做不到像分布式环境下,关掉一部分机器,先升级一部分,再升级另一部分的无缝升级。这时候如果有热更就可以迅速的把Bug修复方案通过热更新进行修复,不会对用户任何的影响。例如:业务逻辑有Bug配置的数据有误需求发生变更热更新的原则1、热更新不破坏原有数据热更新...
2018-01-22 17:04:45
2589
转载 lua闭包全面解析
在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会访问的非局部变量,那么它就是通常说的函数。也就是说,在Lua中,函数是闭包一种特殊情况。简而言之,闭包就是一个函数加一个u
2018-01-22 16:15:51
348
转载 Lua查找表元素过程(元表、__index方法是如何工作的)
Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制来模拟了类似“类”的行为举例说明:[plain] view plain copytempTable = {} print(tempTable.memberA)
2018-01-22 15:50:16
306
转载 Mac OS X - 重置 MySQL Root 密码
Mac OS X - 重置 MySQL Root 密码您是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码:1. 停止 mysql server. 通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'2. 打开终端,输入: sudo /usr/local/mysql/b
2017-05-01 19:59:05
1914
原创 企业所得税
企业所得税:季度所得税:3个月营业收入:3个月累计收入总和营业成本:营业收入*(80% - 90%)利润总额:营业收入*(2% - 3%)
2017-04-16 11:04:37
419
转载 Atlas:手淘Native容器化框架和思考
Atlas:手淘Native容器化框架和思考| 作者 玄黎 发布于 2016年10月19日. 估计阅读时间: 1 分钟 | 道AI风控、Serverless架构、EB级存储引擎,尽在ArchSummit!讨论分享到:微博微信FacebookTwitter有道云笔记邮件分享稍后阅读我的阅读清单在刚刚过去的云栖大会上,手淘宣布其移动容器化
2017-04-14 17:52:00
447
转载 IPC、Binder、AIDL与Intent之间区别与联系
IPC、Binder、AIDL与Intent之间区别与联系博客分类: Android 移动 手机 很多文章提到的的IPC、Binder、AIDL都是混在一起说,有时候好像觉得它们是一样的,但是又有区别,那倒底有什么共同点与不同呢,还有Intent与它们有什么关系呢? 首先看看各自的全称与中文名: IPC:Inter-Process C
2017-04-14 17:32:39
5887
转载 理解Android中的注解与反射
理解Android中的注解与反射 作者 IAM四十二 关注2016.09.03 00:01* 字数 3259 阅读 2468评论 18喜欢 63前言最近一段时间在研究EventBus和Retrofit 的过程中,都遇到了注解这个概念。由于在学习Java的时候对这方面没有深入了解过,所以看起相关的代码来,总会有点不知其所以然,这里就注解和反射的使用
2017-04-13 11:46:32
380
转载 类加载机制详解
Java程序员的必备知识-类加载机制详解 原创2016-09-25 21:35:521093浏览2评论类加载器的概念类加载器是一个用来加载类文件的类。Java源代码通过javac编译器编译成类文件。然后JVM来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。JVM中类加载器的树状层次结构Java 中的类加
2017-04-12 16:19:49
335
转载 领域驱动设计之领域模型
领域驱动设计之领域模型加一个导航,关于如何设计聚合的详细思考,见这篇文章。2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。领域驱动设计分为两个阶段:以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流
2017-04-10 18:46:51
486
转载 读《程序员向架构师转型必备》
读《程序员向架构师转型必备》 机会、人才、技术和产品是公司成长的主要牵动力。机会牵引人才,人才牵引技术,技术牵引产品,产品牵引更大机会。人才锁找我的知识处于最核心的部位。 – 《华为研发》 读完本书,颇有点相逢恰当时之感。内容翔实,而指导性又非常强,很多内容点自己在实际工作中深有感触。其纸质书亦作为自己又一本收藏案头书,进行查阅回顾温习。可惜的是没有正版电子版,只能下本不太清晰的盗
2017-04-10 18:24:43
2390
转载 七个对我最好的职业建议
七个对我最好的职业建议(精简版)作者:Nicholas C. Zakas译者:阮一峰原文网址:https://www.nczonline.net/blog/2013/10/15/the-best-career-advice-ive-received/一、不要别人点什么,就做什么我的第一份工作,只干了8个月,那家公司就倒闭了。我问经理,接下来我该怎么办,他说:
2017-04-10 16:33:35
297
翻译 带你掌握高效的阅读方法·成为学习达人
技术堆栈笔记1:笔记1:“看书”不是学习,建构出体系才是学习笔记2:笔记2:QSACP读书法Q(question)问题S(skim)略读 A(analogy)类比C(cache)缓存P(practice)实践笔记3:笔记3:学习之前先要梳理自己的问题,带着需要去了解的疑虑再去读书,这样才能获得原动力和驱动力。笔记4:1、与自己以往知识体系重合的地方,就可以略读了;2、和自己需要解决的
2017-03-30 20:26:52
631
原创 常用网站
TalkingData-移动.数据.价值 : https://www.talkingdata.com活动行 : http://www.huodongxing.com阮一峰的网络日志伯乐在线: http://blog.jobbole.com/category/career/思达派-创业: http://www.startup-partner.com/1813.html人人
2017-03-30 18:53:54
348
转载 Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
Android爬坑之旅:软键盘挡住输入框问题的终极解决方案链接: https://barryhappy.github.io/2016/10/26/what-if-keyboard-hide-input-view/2016年10月26日本文由BarryZhang原创,同时首发于diycode.cc、barryzhang.com 、github.com/barryhappy
2017-03-30 15:36:24
805
转载 WebKit 分析–for android
http://www.jjos.org/android/2010/05/10/312_webkit-webkit-for-android.html
2017-03-29 11:15:44
280
转载 浏览器的工作原理:新式网络浏览器幕后揭秘
https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/
2017-03-29 11:10:28
314
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人