11 2018 档案

摘要:最近恶补后端技术,发现还是很多不懂,一直写业务逻辑容易迷失,也没有成长。自己做系统,也习惯用自己已知的知识来解决,以后应该多点调研,学到更多的东西应用起来。 先学一个新的性能分析命令。 perf record子命令: 火焰图是基于 perf 结果产生的 SVG 图片,用来展示 CPU 的调用栈。 y 阅读全文
posted @ 2018-11-28 11:40 linyx 阅读(1290) 评论(0) 推荐(0)
摘要:说来惭愧,这么多年竟然还不知道C10K问题。 C10K 就是 Client 10000 问题,即「在同时连接到服务器的客户端数量超过 10000 个的环境中,即便硬件性能足够, 依然无法正常提供服务」。 在我们早已经突破了 C10K 这个瓶颈,具体的思路就是通过单个进程或线程服务于多个客户端请求,通 阅读全文
posted @ 2018-11-16 14:57 linyx 阅读(268) 评论(0) 推荐(0)
摘要:刚好这两天看了陈硕muduo和libevent2的对比代码,作些笔记。 https://blog.csdn.net/Solstice/article/details/5864889 https://github.com/chenshuo/recipes/tree/master/pingpong/li 阅读全文
posted @ 2018-11-16 14:30 linyx 阅读(654) 评论(0) 推荐(0)
摘要:https://www.pacificsimplicity.ca/blog/libevent-echo-server-tutorial 根据这一篇写一个最简单的demo。然后开始写client。 client调优 client最初的代码如下: 代码很简单,会发现有个问题,read这里会阻塞住不退出。 阅读全文
posted @ 2018-11-16 10:32 linyx 阅读(1675) 评论(0) 推荐(0)
摘要:unix domain socket 关闭socket并不会删除文件,重复bind会失败。所以在bind之前要unlink该文件。 open服务器的实现只是简单地看了一下,大致上就是通过unix domain socket传递了打开的fd和相应的权限,而不是文件内容。数据通过sendmsg和recv 阅读全文
posted @ 2018-11-15 10:59 linyx 阅读(196) 评论(0) 推荐(0)
摘要:intel 都是小端,小端即最低有效字节在最低地址上。 tcp/ip协议栈使用大端字节序。 connect失败可能是一瞬时的,用指数补偿算法处理,exponential backoff。但是在bsd套接字实现中,不能这么处理,connect失败,需要关闭套接字,重新打开,这样才是可移植的。 使用du 阅读全文
posted @ 2018-11-14 21:00 linyx 阅读(141) 评论(0) 推荐(0)
摘要:在内部看到的评论, 觉得很有道理,记录下: 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解下,降低其修改成本。 重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。 软件工程中有个词叫 【software rot】 —— 代码腐烂 阅读全文
posted @ 2018-11-13 10:43 linyx 阅读(1574) 评论(0) 推荐(0)
摘要:进程调试 自己写的代码,直接gdb r/bt就可以了。 正在运行的进程,先ps ax找到进程id。然后gdb进入之后attach 进程id。stop/continue暂停和继续进程。 core了,有core文件,就直接gdb core文件。 线程调试 https://stackoverflow.co 阅读全文
posted @ 2018-11-01 19:20 linyx 阅读(1168) 评论(0) 推荐(0)