| jianwu's profile乱舞的弦~~~张牙舞爪的warningPhotosBlogLists | Help |
|
乱舞的弦~~~张牙舞爪的warning15 June 程序员创业失败主要原因阿。。。从某条开始基本上全中。警醒下。
1)没有明确的生活目标。没有奋斗的中心目标或明确的努力主向,就没有成功的希望。
2)没有非同寻常的雄心抱负。 如果对凡事漠不关心,不想在人生中求发展,不愿付出代价,那么这样的人也将成功无望。 3)缺乏自律。 纪律来自自我控制,这意味着人必须控制所有的消极思想,只能先控制自己,才能控制环境。自制是人类面对的最艰巨任务,如果无法战胜自我,就会被自我征服。 4)拖拉。 这是失败最普遍的原因之一,拖拉“老人”存在于每个人心中的阴暗角落,正是因为一直都在等待“适当时机”,才开始做那些值得做的事情,其实时机永远不会“适当”。 5)缺乏毅力。 不管做什么,大部份人开始时都满怀信心,但却不能善始善终。大部份人一遇到失败就容易放弃。毅力是不可取代的。把毅力当座右铭奉行到底的人,发现失败会自行退下,失败是无法对抗毅力的。 6)消极的个性。 因为消极的个性,而将别人拒于千里之外者,不会有成功的希望。成功来自力量的运用,而力量又来自与他人的合作,消极的个性无法促成合作。 7)无法克制“不劳而获”的欲望。这种机体本能使很多人走向失败。 8)缺乏果断的决策力。 成功的人士会果断决策,然后如果有必要,再慢慢改进。失败者往往花很长时间才能作出决策,但很快就需要修改,而且要频繁修改。犹豫和拖拉是一对双包胎,只要找到其中一个就一定能找到另一个,所以必须趁它们没有将你完全束缚在失败的车轮上,果断地把它们消灭。 9)过度谨慎。 不主动抓住机会的人往往只能捡别人挑剩的机会,过度谨慎和不够谨慎都不可取,人生本来就充满偶然成分。 10)迷信与偏见。 迷信是恐惧的一种形式,也是无知的表现,成功人士心胸宽广,无所畏惧。 11)目标不专。“万事通,万事松”,要全心全意专注于一个主要目标。 12)缺乏热情。 没有热情,一个人就没有说服力,而且热情有一种感染力,一个人如果拥有热情,并能适当控制热情,往往会受到人们的欢迎。 13)偏执。心胸狭窄很难取得任何进步,偏执说明一个人不积极获取知识。 14)蓄意不忠。 诚实是一种不可替代的品质,受无法控制的环境所迫,一个人可能一时不忠诚,也不会带来永久的破坏。但是,如果一个人蓄意不忠,则无药可救。他的得行为迟早会被发现,他负出的代价可能是失去信誉,甚至失去自由。 15)自私和虚荣。这些品质问题好比亮起红灯,让人不敢靠近,是妨碍成功的致命因素。 16)猜测而不思考。 多数人往往漫不经心或者过于懒惰,不愿费心获取用于准确思考的事实。他们喜欢根据猜测或仓促得出的“结论”了事。观念改变人生!选择决定未来!行动决定成败! 来吧,老规矩,加上一张无关图片结束文章。前天北京vs天津的一场比赛,球迷打出的横幅:
[没插件,饮恨吧mina]
躲进小楼成一统之技术贴---release要比debug快么
读熊力先生的windows用户态程序高效排错的时候遇到这样一个问题:
------------------------------------------------------------------------------------------------------------ 分别在debug/release模式下运行下面的代码比较效率,会发现debug比release更快。你能找到原因吗?
------------------------------------------------------------------------------------------------------------ 拿vc6调了一下果然如此,根据cpu性能的不同相同的代码debug和release的性能差距竟然有3到4倍之多。决定把此问题搞清楚。
先拿出代码来吧: ----------------------------------------release部分代码----------------------------------------------------- 00401044 8B FB mov edi,ebx 00401046 83 C9 FF or ecx,0FFh ;循环次数 00401049 33 C0 xor eax,eax ;搜索内容 0040104B F2 AE repne scas byte ptr [edi] ;一直重复搜索到EDI字符串末尾的0 0040104D F7 D1 not ecx ;得到搜索次数,也就是字符串的完整长度 0040104F 2B F9 sub edi,ecx ;EDI后退到源字串头 00401051 8B C1 mov eax,ecx 00401053 8B F7 mov esi,edi ;ESI指向源字串地址 00401055 8B FD mov edi,ebp ;EBP指向目的字串地址(之前malloc结果) 00401057 C1 E9 02 shr ecx,2 ;双字mov 次数为长度除以2 0040105A F3 A5 rep movs dword ptr [edi],dword ptr [esi] ;内存拷贝 0040105C 8B C8 mov ecx,eax 0040105E 83 E1 03 and ecx,3 00401061 4A dec edx 00401062 F3 A4 rep movs byte ptr [edi],byte ptr [esi] ;完成剩余内容的拷贝 00401064 75 DE jne main+44h (00401044) ----------------------------------------------------------------------------------------------
debug版本调用的从strcat.asm就能够直接看到了,但是注释中实现的strcpy太过简单,不能显示汇编代码的全貌阿,以下是代码: ----------------------------------------------------------------------------------------------- mov edi,[esp+8] ; edi points to dest string -----------------------------------------------------------------------------------------------
1.最直接(或许也是最正确的)反应,编译器做多余的事情了,就检查debug和release模式下编译参数的区别。最终目标集中在了 /O2和/Ot上,使用/O2效率低,使用/Ot效率高。查阅资料之后发现 /O2 是 /Ot的超集,在我单独添加/O2的优化选项时,效率仍然是比较高的,开始怀疑资料的准确性。此路暂时不通放弃。
2。接下来就开始怀疑release版本内存对齐造成效率低下,检查后win32平台malloc()内存地址必然对齐。pass 副产品对齐版的malloc/free函数如下: /* align_size需要为2的倍数*/ void *aligned_malloc(size_t size, size_t align_size) {
char *ptr,*ptr2,*aligned_ptr; int align_mask = align_size - 1;
ptr=(char *)malloc(size + align_size + sizeof(int)); if(ptr==NULL) return(NULL);
ptr2 = ptr + sizeof(int); aligned_ptr = ptr2 + (align_size - ((size_t)ptr2 & align_mask));
ptr2 = aligned_ptr - sizeof(int); *((int *)ptr2)=(int)(aligned_ptr - ptr);
return(aligned_ptr); }
void aligned_free(void *ptr) {
int *ptr2=(int *)ptr - 1; ptr -= *ptr2; free(ptr); } 3。怀疑编译器release版本经常进行的内联优化上。检查代码以及常识告诉我这样的优化只能让release版本效率更高而已。
4.开始修改代码,使用动态从msvcrt中load strcpy,使用strncpy,自己实现注释版的strcpy 并强制inline,最终的结果都是相同,开始不得不关注进strcpy代码里了,debug版本的strcpy在效率上一定比release的效率高(一直不愿相信这个问题)。我们就只能再回过头来看上面的代码了。Release版本的代码算是比较常规的拷贝操作了,遍历获取字串长度,然后一个DWORD一个DWORD拷贝(很显然比单字节拷贝效率高),最后如果还有内容的话,就按照byte拷贝。下面是debug的, a) 首先检查是否内存对齐,未能对齐的话先诸字节拷贝直至对齐。对win32平台我们直接pass因为内存分配好就是对齐的。 b) 进入main_loop_entrance就比较神奇了,看下面这段神奇的代码,判断字符串是否到了结尾的,如果对一个DWORD拆分成4个byte分别判断,那4bytes一起拷贝节省下拉性能立刻浪费掉了,ms采取了一个非常聪明的办法
----------------------------------------------------------------------------------------------------------------- mov eax,dword ptr [ecx] ; read 4 bytes
简单的解释一下前三个字节我们可以这样判断,如果某字符减去0x1还要向前字节借位的话,那么该字符必然是’\0’,这样的话前一字节的最后一个bit必然会被借位。如此以是否向前一字节借位这一标准来判断该字节是否为’\0’.这样的方法适用于前三个字节,但是第四个字节怎么办?ms使用的方法是这样的以第四个字节的最高bit来判断,如果该字节为0,则在进行减法操作的时候,字节的最高位由于借位产生了1(不是纯0就不会借位到这个倒霉的最高bit身上),以此标准来判断该字节是否为0。 效率的节约也就在于此,dword进行拷贝以及直接对dword进行判断以查找字符串末尾,这是debug版的strcpy超越release版的地方。计算机的世界,算法为王。
不知道诸位有注意到的这个地方没,如果这个倒霉的bit是1其它bit为0呢?他也可能会误把这种情况的跟’\0’混淆的,因为代码无法判断这个1使本来就有的还是被借位出现的(本质就是0xor!0 = 1 1 xor!1 = 1两种情况无法判断),在进行进一步确认的时候就出了问题,不得已重新循环反而就损失了效率。当然这是一种极端的情况。可以填充数据为80xxxxxx来验证一下我们的怀疑。
针对这种方法如果我们想有所改进,单独的DWORD看来是希望不大了。可以结合cf寄存器来做下一步的工作。留一个note吧,以后思考。 整理下最近搞的wow外挂,release些经验来吧。。。。
30 May 时代周刊的一篇文章日前公布的联想2008—2009财年报告,披露了联想巨亏2.26亿美元。这是联想10年来的首次亏损。 联想的亏损主要包括两大部分,一是营业性亏损,二是高达1.16亿美元的重组费用。如果说前者可以用全球经济不景气导致业绩下滑作遁词的话,那么后者可以说是联想高层一系列战略失误的累积效应。 “三无”企业 联想的巨亏是意料之中的事。 2002年,杨元庆提出联想搞“三化”,即科技化、服务化和国际化。杨元庆的“三化”,核心是转型,把联想从制造企业转型成服务企业,也就是占据微笑曲线的两端—研发与服务,把利润越来越低的制造业务外包出去。这其实是IT乃至家电业顶级企业的宿命。 IBM出售个人计算机业务,彻底完成了从制造业向服务业转型。而今天的惠普,实际上也不是门外汉理解的纯粹制造业企业,它早已不是简单卖PC和服务器,而是在卖解决方案了。今年早些时候,我了解到,广州供电局在用惠普的“容灾/业务连续系统”,这个方案是个包括硬件和软件的一揽子供电管理方案。据称,惠普的这个解决方案,已经在全球供电系统中占据了相当高的市场份额。表象是惠普在PC行业继续缠斗,一个后台事实是,惠普早就在发展它的新兴业务,走着当年IBM走过的路—高智能、高附加值的服务业正在成长,一旦服务收入占到总营收的50%以上,惠普可能就要考虑出售PC业务了。 IT企业的宿命就是如此,做顶级品牌,最后必然是把业务延伸到微笑曲线的两端,把中间的制造业务外包给代工企业。 从战略上说,杨元庆是对的,看到了这个IT宿命。但是,要完成这个转型,让大象起舞,需要文化支持,需要技术积累,需要战略统御。而联想恰恰是一个无文化、无战略、无技术的“三无”企业。 国际市场受挫 最要命的是,杨元庆的IT服务与郭为的神州数码业务全面冲突。 柳传志解决这种业务冲突的手法简洁、雷厉风行:杨元庆旗下的研究院、IT服务业全部剥离,收购IBM的PC业务,回归硬件供应商、PC制造商身份。 如果仅仅从国际市场开发角度说,收购IBM的PC业务是非常对路的。联想收购IBM的PC业务,并不是有什么值钱的实物资产,联想收购的实际上最重要的是一个国际化的经营平台,是一个全球市场渠道,还有一个享誉全球的thinkpad子品牌。问题仅仅在于,在IBM平台上销售联想产品,国际市场上的消费者是否认同,联想能不能用好这个平台? 联想今天的困境在于,它不得不用国内市场攫取的利润去供养昂贵的原IBM平台。而国际市场的开发,倒过来威胁国内市场。国内消费者发现,原来民族企业在价格上是歧视自己的国民、自己的同胞的。 近年来,联想电脑在技术、质量、价格和售后服务等等方面也经常受到国内消费者指责。 国际市场受挫,需要国内市场提供更多的利润;而要国内市场产生更多利润,则可能引发更多的反弹。联想的供血机制似乎越来越脆弱。 联想正在为自己打造新的造血机制,包括:参与家电下乡计划,贷款收购巴西PC企业,国内A股上市等等,可以预见,联想的每一个举措,都会成为舆论关注的热点话题。 个人烙印严重 毫无疑问,联想这家企业深深地打上了柳传志的个人印记,联想的企业性格与柳传志的个人性格非常一致。柳传志与牛根生类似的地方是,过分自信,把个人与企业的成功归因于自己的天赋与能力。柳传志、牛根生当然都是非常优秀的企业家,他们的优秀之处在于,他们成功地找到了在中国这个特色市场做大做强的真谛。但过犹不及,中国的成功之道不能复制到国门之外。 比如,联想的重组费用与其他一次性支出,翻译成普通读者能看懂的语言,实质主要就是指裁员成本。4年前联想的“结构性裁员”也就是数千万元人民币打发了事。而此次国际性裁员,却产生一亿多美元裁员成本。 任何产业都逃不出这一产业规律:一个产业越是成熟,它的利润率就越低。PC产业更是如此。当攒机简单到接插件加螺丝刀之后,一个已经没有技术门槛、资本门槛、渠道门槛的行业,凭什么保持高额利润? 联想的未来是什么,有什么好的解决之道,我不想多说。但可以预测一下它的股价。现在,它在香港股市的价格是每股3.09港元,我预测,2009年内,它将进入“仙股”行列。
-----------------end---------------------- 联想买到的原来ibm的pc销售平台,本身就是一个巨大的无底洞,再加上这些年thinkpad在世界很多地方都是每况愈下,维持这个平台的消耗只能来自中国大陆地区的销售。而大陆区推出的产品价格越来越高 质量却越来越烂。 07 February 新年快乐 之一:工作学习篇--待价而沽告别了传说中的本命年,本着不信邪的宗旨未着一丝红色磕磕碰碰的度过了这一年。回顾过去的一年是从没头没脑到牢骚满天工作的一年,是从得过且过回到得过且过生活的一年,是从纯情大学生到准投机者的一年,是结束一种生活方式到开始一种新生活方式的一年,总结为各种的一年。
若是做下流水帐记录倒不如将年终总结鼓捣上来,没甚价值,记录下所得吧。从之前积极工作优秀青年到如今见活就闪的老油条,此间leimin老师功不可没,没有他整日催促isc服务器的维护,倒不会使小生转型这么快,再加上徐core的整日财务处事宜,建设银行项目包揽作者到搬运工工作,科委项目的大小巨细,lenovo不放假的恐吓等等~~这些线索都指向了真相:哥累了,哥们不干了。话说哥们干好了也就那可怜的几百块钱,干坏了也是那几百块;干好了老板收益跟lenovo关系++,干坏了我挨批。跟同宿舍诸君比较,小菜薪金是某2.x倍,昕是某1.5倍每周4天工作制~~好吧其实就是我最低最累。仔细想想真不够聪明,于是,顿悟了---我走后管他洪水滔天。
至于所得,无非是所谓的增强了专业技能,但是在这种项目驱动环境下,真正学到的是其他技术工人一两个月乃至半年也能学会的东西,核心竞争力没有半点提升。嗯,厚着脸皮忽悠人的实力有很大提高。实验室的诸君也都非CS出身,这一年除了身体状况有所下降,恐怕,项目所得是少之又少了。唯一欣慰的是趁工作不忙的时候拿下了DB2的某证,以及SCJP的机会。来年干掉它。
主动有目的学习自己需要的东西才是有意义的,术业要有专攻,学的太多太杂决然不是一个好的趋势,老子曰:以有涯随无涯,殆矣。
list下今年开发涉及的领域,看明年会忘记多少:j2se,j2ee,XML,c under linux,c under windows,c++ under wince.由衷称赞一下自己竟然被这么多玩意玩弄过。
ASM,OS kernel,Security~~再见。理想粉碎,当年的半吊子Hacker转眼被泡制成了蹩脚程序员等待为害某些不开眼的企业,感谢professor XU & Doctor ZHANG & 北京科委&LENOVO。不过国内业界实在没有什么开眼的企业,大都因人成事的龙套角色,创造和制造之间的差别不是一星半点。
到了展望明天的时候了:一个理想做爱做的事,也许会混上个doctor的头衔,但是实在不希望是在ISC-BUPT。
冷,起驾御舒床,装模作样读明史,俺还是个文人捏。
预告下明天的节目
生活家庭篇--动心忍性,曾益所不能 08 October 泪流满面写下这个题目,估计是会被鄙视矫情的。豁出去无视之,本来是在熬夜写那恶心人的设计,没有感觉,在没动手写代码之前,实在不敢说自己写的这些东西的合理性和可行性。
这个十一,应该说是过的相当开心的。因为小兔前来骚扰,带她满北京城乱转,感觉是相当温馨的。期间没怎么说正事,我们之间这点事情可能大都在回避吧,因为都对未来不是很确定,就业~的确是件折磨人的事情。跟她商量了一下她考博的事情,确实,如果真的可以到北京读的话一切倒容易解决了,但是,事实可能这么顺利么?的确是我即将要做的最没把握的事情了,对她来讲也是在同时进行两场赌博,她本可以毕业就找一工作,安安稳稳的生活下去的,我这样可能会害了她吧。她离开之后的那天下午,一直在想这个问题。
现在的心境还是跟ls这些已经工作的心境不一样的,称之为未经社会磨练的幼稚吧。自我膨胀依然,听了ls的“选一个好媳妇少奋斗十年”颇有些不服气,的确,那样的选择会给自己带来很大好处,但是本人本质上还是想体现一下大男子主义,给人保护的,想找一个可供保护的对象满足一下自己可耻的虚荣心,所以准备投身于“选一个好老公少奋斗n年”理论的验证中,这也许是新的奋斗动力了吧。
I JUST CAN'T WAIT TO BE KING
25 July 0!=null建设银行的事情在死灰复燃之后终于又要被某些物事浇灭了。10w总收入落在手里的大约有500吧,刘楠跟笋师兄说的好,我们是来锻炼的。也真是好一个锻炼的~~ 又想发牢骚却发现之前的牢骚已经不少了,还好还好,让上来写space已经说明是比较解脱了,再长舌反而显得没度量,工作的事情就此打住。
其实勾搭我写点东西的是今天跟我的某著名粉丝zyu同学的对话,一段缠绵悱恻匪夷所思的对话,导致我又要重新审视下自己的所作所为,失落了~现在还玩之前的老游戏似乎有些过时,游戏的对象也少了当时的肆无忌惮,不可否认的已经过了那般年龄,下一步,等待一枝花的年龄吧
-----------------经过一系列的扯淡聊天,想说的已经不知道是什么了,来口酸橙汁,祭奠我曾经的光辉岁月
好好的在某人爪牙庇护下可耻的度过豆腐渣时期等待焕发第二春吧 |
||||||
|
|