golang语言编译的二进制可执行文件为什么比 C 语言大

最近一位朋友问我“为什么同样的hello world 入门程序”为什么golang编译出来的二进制文件,比 C 大,而且大很多。我做了个测试,来分析这个问题。C 语言的hello world程序: #include <stdio.h> int main() { printf("hello world!\n"); return 0; } golang 语言的hello world程序: package main impor

golang游戏项目中使用 tls、https 与etcd v3服务通讯

在全球同服的游戏架构中,网络结构一般设计成集群的形式,用户随便在哪个服务器节点上都可以玩,也就要求每个节点的环境都是一致的,节点之间是可以自由下线上线的,用户是可以在每个节点自由注册的…等等,各种需求的出现,会需要一款能主动发现节点上线线,能统计全局所有服务器负载、状态,能实时下发配置等信息到所有节点的这么一款软件,那么就用到 ETCD 了。 etcd 作为 高可用分布式配置同步的软件,一般只对内网服务,偶尔也会暴露到外网。不管是内网,还是外网,都需要安全

Clash Royale皇室战争的黑盒技术分析

今年开春,Clash Royale《皇室战争》在国内上架,又是SuperCell公司的大作,想必会非常火。在去年年底我层玩过封测版本,掉线比较严重,但仍没影响到我对它的好奇,我很想知道它的网络同步是如何实现的,战斗那块是帧同步吗?全是客户端计算的吗?这些疑问一直困扰着我,这次在国内上线了,网络状况也好,调试起来会更会舒心,更方便。 为此,我在工作之余,开始对Clash Royale《皇室战争》进行了黑盒分析,洋洋洒洒写了80多页的PPT,用于团队内部分享。顺便也发在博客上,让

密码保护:记一次证书考试的经历

This post is password protected. To view it please enter your password below: Password: Submit 关注微信公众号,手机阅读更方便: 程序员的阅微草堂 莿鸟栖草堂 由 CFC4N 创作,采用 知识共享 署名-非商业性使用-相同方式共享(3.0未本地化版本)许可协议进行许可。基于http://w

密码保护:2015乙末年总结

This post is password protected. To view it please enter your password below: Password: Submit 关注微信公众号,手机阅读更方便: 程序员的阅微草堂 莿鸟栖草堂 由 CFC4N 创作,采用 知识共享 署名-非商业性使用-相同方式共享(3.0未本地化版本)许可协议进行许可。基于http://w

osx平台上lol英雄联盟launcher启动器的分析实现

我算个LOL玩家吧,虽然是郊区白银段位的,虽然能1打5个电脑,但瘾不小。每次想打LOL,都找不到PC电脑,看着OSX却不能玩国服,只能玩美服、韩服。而外服的网络延迟比较大,根本没法打,跳帧严重,野怪都打不过。每次瘾来了时,总是想在OSX上也能玩,次数多了,决定试试,看看能否在OSX上玩国服。 15年10月份对LOL英雄联盟录像做过解析器在mac osx上看lol国服ob录像的技术分析,文中最后提到过关于LOL客户端架构的组成,以及在OSX上打LOL国服还是有可能的。 现状分析

在mac osx上看lol国服ob录像的技术分析

一天,兴起而至,想在mac osx上看lol ob,要看国服的,没现成方案,实现不了,未遂,便决定研究一番。 在拳头游戏官方的api中SPECTATING GAMES riot games api提到观看ob模式的程序启动参数: “C:\Riot Games\League of Legends\RADS\solutions\lol_game_client_sln\releases\0.0.1.74\ deploy\League of Legends.exe

不要在linux上启用net.ipv4.tcp_tw_recycle参数

本文为翻译英文BLOG《Coping with the TCP TIME-WAIT state on busy Linux servers》,但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同。翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许对他们也有帮助。文章比较长,没耐心请点关闭。 不要启用 net.ipv4.tcp_tw_recycle linux 内核文档中,对net.ipv4.tcp_tw_recycle的描

ububtu server 14.04上,PHP5-FPM服务的启动方式变更

在一位前辈微博上看到,他总是给自己找点事做,让自己忙碌起来,严于律己。我甚有感触,相比之下自惭形秽,一直做不到,这应该就是大神跟我等小菜之间的差距吧。如今,事情主动找到我,而且是一而再再而三的找上来,我再去逃避,再不认真去面对这些问题,实在说不过去。 朋友在群里问了问题,ubuntu server 14.04版本,apt-get install的PHP5-FPM,自己编译了phpredis,却发现始终没成功加载phpredis这个扩展。 ubuntu@shnj-b-batc

TCP SOCKET中backlog参数的用途是什么?

在前年时,业务中遇到好多次因为PHP-FPM的backlog参数引发的性能问题,一直想去详细研究一番,还特意在2013年总结里提到这事《为何PHP5.5.6中fpm backlog Changed default listen() backlog to 65535》,然而,我稍于懒惰,一拖再拖,直至今日,才动脑去想,动笔去写。 2013年12月14发布的PHP5.5.6中,changelog中有一条变更, FPM: Changed default listen() back