编程心得
final
坚强的走下去 辉煌的站起来
展开
-
多目录的makefile
都已经21世纪了,怎么说程序也不能就一个文件不是,呵呵,郁闷几天,现在终于把这个问题解决了. 问题描述:现有2个.cpp文件,1个.h文件 分别放在lib和sources文件夹下,顶层makefile如何解决.o所需依赖的文件之间的编译问题? 解决方案: 看了很多帖子,发现使用了.d,然后再include进来就可以了,不过我试了,好像不怎么好用,郁闷啊...毕竟是人家的风格,可能我还原创 2008-08-29 05:36:00 · 4507 阅读 · 1 评论 -
打造高效的日志系统 -- Thread-Caching 日志系统
Title: Thread Caching Log SystemAuthor: 胡钰璋 ( Yuzhang Hu )Email: hyzwowtools at gmail dot comCode Location: https://github.com/finaldie/final_libs/tree/0.2.0/flogTesting Code: https://github.c原创 2012-08-02 02:59:15 · 5194 阅读 · 1 评论 -
Why Git
很多次给人推荐使用Git(DVCS, 一个分布式版本控制系统)去管理自己的代码, 本周继续给公司的同事们介绍Git, 很开心能有更多人一起使用它. 本篇整理了一下, 适合那些想初步尝试Git, 又或者想尝试Git但公司的server又是SVN的朋友们, :D 希望有用.原创 2012-04-13 14:44:31 · 1507 阅读 · 0 评论 -
巧用未初始化的数组
personal blog: http://finaldie.com/wordpress/ email: hyzwowtools@gmail.com问题: 我们在写程序的时候, 经常会碰到重置一大块连续数组空间的问题, 我们把问题简单化, 比如有 "int array[N]" 这样的数组作为hash映射表, N是个非常大的数字, 当插入元素M的时候我们就令arr原创 2012-02-09 23:58:55 · 2980 阅读 · 0 评论 -
How to Write a Simple UnitTest Framework
personal blog: http://finaldie.com/wordpress/email: hyzwowtools@gmail.com 很多时候, 我们需要UnitTest帮助我们快速的发现代码修改中引发的问题, UnitTest的意义以及重要性已经无需重复, 那么在实际项目中, 我们会选取合适的UnitTest Framework帮助我们完成这项工作, 然而Unit原创 2011-12-06 14:00:57 · 776 阅读 · 0 评论 -
Event & Network 设计思考
我的站点: http://finaldie.com/wordpress/mail: hyzwowtools@gmail.com自己之前写了一个网络库, 最初仅仅是为了练手, 后来用着还算顺手, 就直接用在自己的小项目里了, 不过最近查看libev和redis的代码, 自己反思了下, 得到了一些总结一些经验 之前在写这部分的时候, 直接把epoll的代码耦合在网络库里了, 也原创 2011-11-11 17:00:02 · 644 阅读 · 0 评论 -
How to Make a AutoBuild System with Git Server
personal blog: http://finaldie.com/wordpress/emai: hyzwowtools@gmail.com 今天给大家分享一下最近自己的成果, 折腾了一个autobuild系统, 如果您和我有同样的需求, 不妨跟随我一起搭建一个这样的系统, easy and simple, have fun :)Why: 事情是这样开始的, 我自己原创 2011-11-29 00:58:59 · 3586 阅读 · 0 评论 -
Include C file
出自我的blog 原文链接: http://finaldie.com/wordpress/?p=21 好吧, 看到标题你一定认为我犯了一个big mistake, 我没有遵循include .h标准范式去编写程序, 不过我还是想说说这里面的好处 现在我们有一个需求, 想要编写一套事件库以便适应不同的平台(linux, freebsd … ), OK, 这里有一个显然的问原创 2011-11-15 11:33:45 · 893 阅读 · 0 评论 -
判断TCP连接异常
这阵子突然重新接手做了下关于TCP连接异常中断的检测, 这里的异常中断指的是目标主机断电, 网线被拔等非正常因素. 这个问题已经被处理很多年了, 无非2种基本解决策略: 1. 应用层心跳 2. 开启协议栈提供的keepalive, 这个和操作系统有关 有些操作原创 2011-08-04 17:19:29 · 2693 阅读 · 1 评论 -
关于基础架构的一些零碎问题的整理记录
很久没有写了, 今天偶来兴致, 记录一下 :) 每款产品无论大小都会尤其所谓的架构设计, 从百度的搜索框架, sina的微博平台, 360的云杀毒服务, 这些基础架构都或多或少的展现了其雄厚的技术体系. 多少人能完整的了解所有架构设计, 往往很少. 不过能在一定层面上做到精益求精, 超凡脱俗实属佳品. 分布式计算体系中经常会遇到一台服务器上的请求数量爆炸式增长时内存不原创 2011-07-01 15:53:00 · 925 阅读 · 1 评论 -
网络负载控制的一点经验
前言: 重构了几次的网络库基本上没什么问题了, 从单线程改为多线程, 又从多线程改为单线程... 反反复复, 细小的地方权衡了很多次, 从简洁到复杂看不顺眼, 又重构为简洁优雅~ , OK, 扯了一堆还没进入正题, 主要唠叨一下遇到的问题和经验吧: 我们使用诸如libevent之类的网络库, 典型的用法是接受到数据包之后要一次性将数据读取完整(不完整的协议内容除外), 不过这有个问题, 一原创 2011-06-10 23:15:00 · 866 阅读 · 1 评论 -
hash_tbl 改造续..
<br /> 经过一晚上的倒腾... 终于重构好了hash_tbl, 思路和之前想的一样~ , 从索引头到冲突链都使用数组实现~ 结构如下:<br /> <br /> <br /> <br /> 原来协议层也用的hash_tbl进行管理, 但因为协议是连续自增ID, 不存在动态变化的可能, 所以这块不使用hash_tbl管理了, 直接用静态数组进行映射.<br /> 这样的话, 只有逻辑层发送协议的位置有通过hash_tbl查找具体的net_buff, 不过这块是hash_find, 并无大碍. 因原创 2011-04-15 16:27:00 · 662 阅读 · 1 评论 -
hash_tbl 结构改造
<br /> 这两天正在为网络层制作负载均衡策略, 这个具体的细节会在今后逐步写出, 先来说说在测试负载均衡时遇到的一点问题.<br /> <br /> 昨晚改好后, 负载均衡策略可以按照预期逻辑层指定的返回值进行继续通知或者挂起~, 从而让优先级更高连接类型获得更多的执行权. 但是测试的结果并不像预期那样美好, 虽然服务器不会因为buff不足而被迫断开连接, 但是运行效率依然和以前一样稳步下降, 这让我着实很恼火..., 于是直接加上 -pg参数开始profile...<br /> <br /> p原创 2011-04-14 14:10:00 · 661 阅读 · 0 评论 -
mongodb C driver的异步查询
最近在选用NOSQL数据库的时候最终选择了mongdb, 感觉其各方面都很优秀, 于是为服务器增加了一组mongodb的接口, 以方便LUA逻辑层使用. 驱动方面选用了官方指定的C DRIVER, 大家有兴趣的可以直接去mongodb的官网上查找, 不过查看了其mongo_find接口发现为同步调用, 这在服务器并发应用方面会受到限制, 通常服务器为了提高并发处理效率会使用异步接口. 开始的时候比较偷懒, 在其官网上留言想让其driver开发人员帮忙添加异步调用接口, 这事情也就先放下了... 2天过原创 2011-04-02 03:12:00 · 4872 阅读 · 1 评论 -
用valgrind查找内存错误
一直以来写程序还算比较稳健, 每个模块的集成都先通过大量的单元测试, 很少出现严重的内存错误, 不过百密难得一疏, 前几天在查找一处疑似内存泄露问题的时候测出一个段错误... 杯具... 查了大段大段的代码也没有发现异常(事实证明这是一种不仅低效而且存在思维定势的审查方式)... 无奈之下让我又想起了valgrind 果断开启valgrind, 添加参数 -v --tool=memcheck --leak-check=full --log-file=memcheck.log, OK, 很快完成了一次原创 2011-05-19 11:26:00 · 1152 阅读 · 0 评论 -
SOCKET基础
呵呵,我的水平也只够写点基础的,如果你是高手,那么可以直接跳过了。。以免耽误时间。。。 本文的目的只是为了帮助新手更好的入门,消除一些疑虑。 SOCKET,顾名思义,套接字,插槽,为什么这么叫那,其实它是一种接口而生的结构体,就好像货车拉货,需要一个箱子来包装货物,它就是一种用于承载数据的介质,我们把数据放入其中,根据TCP/IP规则让我们来区分各个数据包的归宿,所谓规则就是IP+端口,只原创 2008-10-01 13:58:00 · 714 阅读 · 0 评论 -
AutoBuild系统的改进
Title: Upgrade Autobuild SystemAuthor: 胡钰璋 ( Yuzhang Hu )Email: hyzwowtools at gmail dot comPersonal blog address: Here 之前写了一篇文章算是AutoBuild Server的开篇, 上一篇已经叙述了如何利用git server搭建自动构建系统原创 2012-08-15 13:59:21 · 3341 阅读 · 0 评论