随笔(2015.12)

来源:互联网 发布:天心软件集团 编辑:程序博客网 时间:2024/06/17 04:01
  1. 多线程调试问题。
    遇到了cpu使用率过高的bug(双核cpu,有一个进程占一直用50%)。
    多线程一般不要直接调试,因为可能会跟实际多线程运行不一样,毕竟调试时会阻塞当前线程。比较好的做法是:在代码中加输出log,然后运行程序,根据产生的log来分析。但这次涉及到使用第三方的sdk,怀疑可能是sdk中的线程有问题。问题定位方法有:
    1)代码走查。直接用赵老师的话,“while里面要么调用阻塞函数,要么调用linux下usleep(微秒);或Windows下Sleep(毫秒); ”。
    2)用VC6调试,先把所有线程都break下(点击按钮“Break Execution”),然后点击Debug下的Thread,会弹出一个所有线程的列表,列表中有当前进程中所有的线程信息,
    vc还有一些调试的方面的功能见下博客 http://blog.csdn.net/feixiaoxing/article/details/7043631
    3)借助工具pslist。linux下很容易用top命令查看各个线程与进程的信息,windows下
    https://technet.microsoft.com/en-us/sysinternals/bb896682.aspx
    http://blog.csdn.net/xiaofei2010/article/details/8292180

  2. http://www.cnblogs.com/minggoddess/archive/2010/12/29/1921077.html 库冲突问题

  3. 选举算法
    Paxos 算法
    http://blog.chinaunix.net/uid-26111972-id-3759540.html

  4. 帮别人刷票,用的代理服务器,setsockopt()的选项IP_HDRINCL;想了下,基本没什么用,修改自己发包的ip信息,在经过路由器后,会改变替换的,除非是在一个网关中。

  5. 组网问题
    这里所说的多级组网有一定的应用场景,例如在省、市、县等级别组网,
    下面所说多级组网主要利用sip协议中路由寻址与组网的功能,要求,域名在本域中唯一。
    1)多级组网中,树形结构比较常见,也符合一般的权限模型。
    2)如果需要双向验证,一种简单方法是在父子节点中预先配置,即子节点知道自己的父节点,父节点也知道自己有哪几个子节点。验证的时候,可使用随机字符串+节点地址(预先配置的)不可逆算法进行验证。(ps:不一定要双向验证,可以把子节点理解为父节点管理的设备,只要父节点知道自己有那几个子节点直接连接即可,只要验证算法足够强,子节点不需要预先知道父节点)
    3)每经过一个路由(父节点或子节点),需要在via字段中添加路由的域名:ip,目的是未了在回复的时候知道从哪里原路返回,减少再次寻址的消耗。
    4)路由寻址时候,如果被节点不在消息的路由中,返回给父节点;如果自己在域名中,找对应的下一个子节点并发送过去;
    5)多级组网避免环路问题主要有两个方法,对于收到的消息查看via字段,判断以前是否经过本节点,如果以前经过,直接pass;另外还有一个MaxForwards字段,在一定程度上也会减少环路的问题。

  6. 通过不断的思考找到问题并解决问题~~~~ 别人博客中看到的一句话,思考与解决问题,才是工作能力。比自己“会很多”更重要,会很多不意味着公司完全需要,也不等于做的贡献多一点。

  7. 热路径处理中不要使用bind与智能指针,消耗资源会变大。

  8. 鸡汤,来两碗
    1)你感觉不舒服的时候,就是成长的时候 ps:经历过一次,经验++
    2)自得其乐是一种能力 ps:快乐是自己给的
    3)不要太把自己当回事,也别把自己太当回事 ps:工作只是交换而已,CEO都可以换
    4)与其怕失败,不如狠狠地失败一回
    5)你自己觉得有,别人感觉不到你有,你就是没有 ps:与自己的价值理论有些类似,自己有能力,但公司用不到,对公司来说,就是没价值
    6)刚工作几年比谁更踏实,再过几年比谁更有激情 ps:后者比前者难做到,需要真正兴趣支撑
    7)当你只需要一个针时,千万不要去磨铁棒 ps:造轮子是在浪费,能用好轮子也是能力,牛顿那一句,站在巨人的肩膀上
    8)机会是最缺乏的资源 ps:这个随机性比较大
    9)分享是学习他姥姥 ps:学习他妈妈是啥呢,有点不懂。
    10)当伙伴需要你伸出一只手时,不妨把肩膀都给他
    11)不要事情找你,而要你找事情 ps:工作的智慧
    12)男人的胸怀是被委屈撑大的 ps:小心人性弱点——懦弱
    13)梦想不足以让你到达远方,但是到达远方的人一定有梦想 ps:非充分必要条件,此类鸡汤较多
    http://blog.csdn.net/cutesource/article/details/5729826

  9. 数据库备份一般数据库会提供相应的功能,例如sybase,mysql可以单独配置一个备份数据库,这个数据库一般与需要备份的数据库在不同的服务器上(防止硬盘损坏),而且可以近似于实时备份,这样好处就是当数据库出现问题的时候,可以很快切换到备份数据库上,可以使得系统可用性高。还有一种就是备份整个数据库文件,这种方式一般对于大数据库来说,是进行一次全库备份,然后后面备份是基于全库备份的增量式备份,否则如果数据库较大100G,那么没备份几次硬盘就满了,而且每次都全库备份速度也慢。下面是网上的一些参考都不是很详细。

FIREBIRD的备份工具(NBACKUP)介绍
http://www.cnblogs.com/top5/archive/2009/04/10/1433022.html 一个实际运用
一个基于nbackup的增量备份计划可能象这样的: . 每个月进行一次完整备份(0级别); . 每个星期一个1级; . 每天一个2级备份;
. 每小时一个3级备份。

只要所有的备份都保留者,你可以把数据库恢复到过去任意一个小时的状态。对于每个恢复操作,最多使用4个备份文件。当然,你也可以这样规划,在非高峰时间进行更大的,更耗时的备份。这样的话,0级和1级别粉可以在周末进行,而2级的则可以在晚上进行。

如果你不想把所有的东西都永久保存,你还可以增加一个删除计划: . 3级备份可以在8天后删除; . 2级备份可以在一个月后删除; .
1级的可以在6个月后删除; . 完整备份2年后删除,但每年的第一个仍然保留。

sybase 远程备份 http://blog.chinaunix.net/uid-182114-id-129429.html sybase
http://blog.csdn.net/y541397839/article/details/4801847 数据库备份
http://www.cnblogs.com/lyhabc/articles/3236841.html

0 0
原创粉丝点击