Author Archives: chenyajun

binary hacks 记录

6、 静态库和共享库 静态库的编写通常如下: cc -c -o foo.o goo.c cc -c -o bar.o bar.c ar ruv libfoo.a foo.o bar.o 查看库的内容: ar tv libfoo.a 连接使用:cc -o baz baz.o -lfoo

Posted in 系统编程 | 2 Comments

epoll 的 et 和 lt

本文来自:Linux那些破事儿之我的高性能 但凡对epoll有一点点了解的人,都听说过epoll有两种工作模式,即ET(Edge Trigger)和LT(Level Trigger)模式。这两种工作模式的中文翻译分别是边沿触发和电平触发,还可以称为事件触发和条件触发。我倒是觉得后者的翻译更能清楚的描述这两种工作模式的特点和差别。 当epoll工作在LT模式下,只要其监控的I/O句柄具备调用者所要捕获的条件——一般是可读或可写——就会通知给调用者。如果调用者不理会这个通知,它将一直通知下去,直到这个状态发生变化。当采用多进程模式(后面会详细介绍)编写服务器软件时,根据系统任务调度特性,采用LT模式可以使得所有连接均匀的分布于每个用于处理网络请求的进程。有汽车驾驶经验的童鞋可以将LT模式理解为驾驶自动档的汽车,只要设置好你感兴趣的I/O句柄和事件类型,在具备条件的时候epoll就会通知你,只需要做相关的处理就可以了,非常轻松惬意,代价就是稍微多出的那么一点点油耗。 当epoll工作在ET模式下,情况有些变得复杂了。原因就是这种基于事件的通知是事件发生后,只会产生一次通知。如果你不去理会它,它也不会再理会你,直到下一次事件发生。这会导致一个严重的后果就是当一个编写不够良好的程序,在获得事件通知后并没有将缓冲区的数据全部读取干净,epoll也不会有任何通知,没有读取到数据可能永远都不会被读取,或者使得那部分数据超时。另外,ET模式只允许非阻塞式I/O,这就进一步加剧了上述问题的恶化。解决的方法就是反复读取缓冲区,直到返回错误。所以,如果说LT模式是自动挡,那么ET模式就是手动挡,所有情况都得自己处理,处理不好就可能熄火,好处就是经济实惠。另外,ET模式在多进程服务器软件中,会导致连接在处理进程之间的不均匀分布,不过也只是相对的,当发现问题严重时,可适当暂停某个进程做接受新连接的处理。 答案就是:如果要发送数据,大多数直接调用send或wirte就可以了,直到他们返回EAGAIN错误,才需要将它们交给epoll去监控。一旦epoll_wait返回某个被监控的I/O句柄可写,则应该立即利用epoll_ctl将它删除,直到下次再出现EAGAIN错误。不过虽然说起来简单,但是真正到具体的操作还是比较麻烦。要完整可靠的发送数据:必须记录每次实际发送的数据量来统计剩余量;当发生EAGAIN错误后,必须将剩余的数据保存在一个地方,一般放在epoll_event结构的data字段中即可;当epoll通知可写后,将剩余数据发送出去;但是当遇到压力较大时,可能在发送剩余数据的时候还会发生EAGAIN错误,必须始终记录剩余数据才行。

Posted in 系统编程 | Leave a comment

买入股票之前通常要了解的东西

来自黄祖斌的文章,本人有些补充。 以下是本人在买入股票之前通常要了解的东西: 1、买入的股票是生产什么的,经营地在哪里,市场在哪里,名称叫什么。 2、我准备做长线(两年以上),中线(一个月到两年),还是短线? 3、我的目标位是多少?止损位是多少? 4、是否看过超过一万字,十篇以上对该公司的分析报告? 5、是否已经全部看过交易软件中F10中的所有内容? 6、如果下跌,是否有补仓的计划和资金安排?如果上涨,是否有加仓的计划和资金安排? 7、如买入,动用资金占总资金的比例如何?目前的仓位如何?买进后是否会失眠? 8、该上市公司前三个年度及今年各季度的每股收益、净资产收益率、每股净资产、发行价(或增发价)分别是多少?公司最近三年的业绩增长率是多少?PEG是多少?净利润增幅是多少,现金流是多少? 9、该公司的流通股是多少?股份总数是多少?H股是多少?非流通股的上市流通日是哪一天?母公司是空壳公司吗?实际控制人是谁?母公司有哪些业务?和上市公司业务有无关联? 10、该公司的利润中,主营业务占多大比重?补贴收入占多少比重,该补贴的有效期如何?投资收益有多少?有无对外放高利贷?有没购买理财产品? 11、该公司是否享受了税收优惠,该优惠何时取消?是否有减税的预期? 12、该公司的盈利大幅增长或亏损的突然增加,是否有特别的因素?如春兰股份曾出现过突然的亏损,其实是因为合并报表所致。山西汾酒曾经的亏损是因为曾经的杏花村假酒案。而最近一两年一些公司的盈利大增是因为交叉持股。 13、该公司的优势在哪里?(就是彼得.林奇所说的利基) 14、最近国内、国际的经济形式(如利率、汇率、税收、经济增长、产业政策)对其有何影响?地震,火山,海啸等突发事件对其有何影响,原材料的采购价格变动影响如何?存货如何? 15、该公司是否换过审计的会计事务所。 16、证券公司、基金公司等对第5个问题的预测如何。 17、该公司是否属于最近市场中的热点板块?该板块启动多久?平均涨幅有多大? 18、股价是否在60日均线之上?5日均线是否上穿了10日均线?均线是否多头排列?MACD是否已翻红?K线形态是否适合买入? 19、该公司有无扩张计划?该公司的主要竞争对手是谁?新投产的预期产能、效益是多少?何时开始贡献利润? 20、该公司最近一年在其公告中有无此地无银三百两的忽悠内容?公司高管的发言是否显得水平低下?不够诚实? 21、有多少家基金公司持有该公司的股票,占流通股是百分之几?前十大股东及前十大流通股股东分别是谁?股东数变化是多了还是少了? 22、上市后,有无被大肆炒作的历史?如有,则其持续下跌的幅度和时间与其被炒作上涨的幅度是否相称?股价是否得到了休养生息? 23、有无增发A股、H股、公司债、可转换债券的计划?如有,是多少股或金额? 24、公司现任的董事长及其他高管有无卖淫嫖娼、贪污公款、吸毒、离婚、开车超速行驶、小偷小摸、偷窥、欠人5元钱以30个理由抵赖、拖延不还等不良记录?他们各自的老婆是否有在今天宣布在两小时之前刚得知他与其他女人有不正当关系?

Posted in 投资 | 1 Comment

Gossip 协议

一个 gossip 协议满足下面的条件: 1、协议的核心涉及到周期性的、成对的、进程之间的交互。 2、这些交互的信息有一个确定的大小。 3、在交互时,至少一个 agent 的状态改变来反应另一个的状态。 4、不需要可靠的通信。 5、交互的频率低,同令一些典型协议相比,协议的代价可以忽略。 6、对端节点的选择是随机的,节点可以从完整的节点列表选择或者从邻居节点来选择。

Posted in 系统架构 | Leave a comment

TCP/IP 基本概念

1、 阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回 值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况 下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着读,因此需要 循环读取

Posted in 系统编程 | 1 Comment

几道题(5)

给定两个数组 X 和 Y,它们都包含 n 个元素且都是有序的,如何找到它们的中位数?

Posted in 杂七杂八 | 1 Comment

几道题(4)

Let A and B are sorted array with length m and n respectively, given k, the problem is to find the first k smallest elements which are composed of A[i]+B[j]. e.g. A={1,3,5,7}, B={2,6, 10}, k = 3 Output: 3 5 … Continue reading

Posted in 杂七杂八 | Leave a comment

几道题(3)

取值为 [1,n-1] 含 n 个元素的整数数组至少存在一个重复数,O(n) 时间内找出其中任意一个重复数。 如果只有一个重复数,那么好说,直接用数组的和减去 1 到 n-1 的和既可。

Posted in 数据结构与算法 | Leave a comment

几道题(2)

有两个数组 A 和 B,B 数组中的元素在 A 中连续出现,但是可能它们在 A 中的顺序并不是像 B 中那样的顺序,请找出 B 中元素在 A 出现的开始位置和结束位置。 比如: A: 4, 1, 6, 2, 8, 9, 5, 3, 2, 9, 8, 4, 6 B: 6, 1, 2, 9, 8 则答案是 (1, 5)。

Posted in 杂七杂八 | Leave a comment

几道题(1)

给定数组Arr[n],对于其中的每个元素Arr[i](0=

Posted in 数据结构与算法 | Tagged | Leave a comment

HDU 3022 —— Sum of Digits

求一个长度小于100位且满足每位的数字和为s1(

Posted in other OJ | Tagged | Leave a comment

名人 (Celebrity)

问题描述: 在一个聚会上有 n 个人,其中有一个名人,大家都认识他,但他却不认识所有其他人。现在请你只通过询问来宾 x 是不是认识来宾 y 的方式把这个名人找出来。最多只能使用 O(n) 次询问。

Posted in 数据结构与算法 | Leave a comment

HDU 3389 —— String

求由 n 个1、m 个 0 组成,并且任意前缀中 1 的个数不少于 0 的个数的字符串的个数,并模 20100501。 参考组合数学第 31 页。

Posted in other OJ | Tagged | Leave a comment

矩阵相关

http://hi.baidu.com/fzu_saber/blog/item/508911445c740a2fcefca352.html

Posted in POJ | 1 Comment

递归&贪心

http://hi.baidu.com/uuriel/blog/item/9752e0f65a7e5b2b720eecce.html

Posted in POJ | Leave a comment