
技术感悟
文章平均质量分 53
wolftop
秋风落叶乱为堆 扫尽还来千百回 一笑罢休闲处坐 任它落地自成灰
展开
-
代码优化经验总结(1)
一, 全局优化.<br />1,realse版将比debug版体积小40%左右.另外将编译器选为最高的优化级别.<br />2,找出代码中的瓶颈,也就是被调用最频繁或处理最复杂的函数.并对这部分代码进行优化.<br />3, 用内联汇编,或直接用数组来实现内联机器码做优化,但可失去可移植性,一个折衷的方法还是将汇编或机器指令写到单独文件中或放到单独的数据结构中,另外也可以在访问他们时用宏控制.(对于用内联汇编的理由很简单,比如编译使用的都是通用的指令集,你却可以使用专用指令来减少指令的数量.在图形领域很普遍原创 2010-12-02 21:22:00 · 1670 阅读 · 0 评论 -
(转)Anders Hejlsberg谈C#设计过程
<br />原文:http://msdn.microsoft.com/vcsharp/headlines/hejlsberg/default.aspx<br /><br /> Anders Hejlsberg为Borland工作13个春秋后,于1996年加盟微软,最初参与设计Visual J++和WFC(Windows Foundation Classes)。然后,担任C#首席设计师和Microsoft .NET Framework设计小组核心成员。目前,他还将继续领导C#语言后续版本转载 2011-05-04 10:30:00 · 2448 阅读 · 0 评论 -
为什么Java中要使用Checked Exceptions
转自 http://blog.sina.com.cn/longxhud<br /><br />原文:为什么 Java 中要使用 Checked Exceptions <br />第一部分 选择checked or unchecked <br /><br />这里需要对异常的理解。什么算异常?java的异常处理机制是用来干什么的?异常和错误有什么区别? <br /><br />异常机制就是java的错误处理机制!java中的异常意味着2点:第一,让错误处理代码更有条理。这使得 <br />正常代码转载 2011-04-13 13:54:00 · 1668 阅读 · 0 评论 -
面试题:从字符串中移除字符
无意中看到的迅雷招聘的面试题。 看了网上很多种实现。觉得都没啥新意,好久没写算法,自己弄个玩玩。不知道性能是否要好些。虽然没测,但感觉应该还是会高些滴。。。假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)? 懒得用JAVA,反正C#实现效果一样。 public static void Main() { string s = removeChs("6sabc原创 2011-04-07 22:54:00 · 2364 阅读 · 1 评论 -
哥写的不是代码,是艺术!
本文来自http://blog.youkuaiyun.com/lijun84 ,引用必须注明出处!这阵子终于可以精雕细琢的编写一些想了很久的东西,没有schedule的压力,没有QA的追杀,没有强迫自己实现的需求,这种感觉久违了,很喜欢那种体味每句代码并精心雕琢它们的感觉。顺便把很久前就想抒发的代码情节释放出来。纯粹个人抒发,别challenge我喔…我不回复的…从纯艺术的角度抒发一下代码美学:一段美的代码是当你初看它时感觉似曾相似,与你期望对此功能的实现方式基本相符,当你读到更多其它部分时,不断的感叹原来它还为这原创 2011-03-29 10:53:00 · 7588 阅读 · 6 评论 -
(转)Lua之父采访记录
LuaLua 是一门非常之小,但五脏俱全的动态语言。它由 Roberto Ierusalimschy、Luiz Henrique de Figueiredo 和 Waldemar Celes在1993年创建。Lua 拥有一组精简的强大特性,以及容易使用的 C API ,这使得它易于嵌入与扩展来表达特定领域的概念。Lua在专有软件界声名显赫。例如,在诸多游戏中,比如 Blizzard(暴雪)公司的《魔兽世界》和 Crytek GmbH 公司的《孤岛危机》,还有 Adobe 的 Photoshop转载 2011-05-11 17:30:00 · 2571 阅读 · 0 评论 -
理解分析问题的常用方法
<br />抽象,关键在于如何抽出有价值的东西,以这些东西为基础提出更多更深入的问题.所以解决问题的本质是如何提出更多有价值的问题.<br /><br />a,类比 (又称变行法或映射法,关键词:例如,比如,就象是)<br />b,假设 (关键词:在..条件下,当..时)<br />c,分解 (关键词:包括..方面,分…步骤)<br />d,分层 <br />e,组合 (又叫拼凑法或归纳法,在拼凑过程中问题核心不变)<br />f,否定 (又叫反证法:从正反两面看问题)<br />g,图像 (在大脑中形原创 2010-11-24 13:13:00 · 4494 阅读 · 0 评论 -
解决问题的方法
1,搞清谁(问题的对象)有问题.2,问题的本质是什么大多数问题其实就是你期望的东西和你体验的东西之间的差别.解决办法是要么改变期望,要么改变体验.3,不要把他们解决问题的方法误认为是问题的定义—特别是在你使用自己的解决方法时(要搞清楚问题的定义)4,如果你太轻易的解决了他们的问题,他们永远不会相信你真的解决了问题5,你永远都不能肯定你已经有了一个正确的定义,即使在问题已经解决之后,但永远不要放弃寻求它的努力6,不要过早的下结论,但是也不要忽略你的第一印象7,每种解决方法都会带来新的问题(问题不可被消灭,只会原创 2010-11-24 13:16:00 · 4538 阅读 · 0 评论 -
一个字让你从新手成为合格的程序员
<br /><br /><br />“试”<br /><br /><br /><br /><br /><br />很多朋友无法入门源于对未知或陌生事物的恐惧,不敢放手大胆的去尝试,当你克服了<br /><br />心理上的恐惧后,对任何新技术大胆的去尝试。你将发现原来如此简单。使自己对原本<br /><br />陌生的代码更加可控,单元测试其实更多也是为了建立心理上的优势。原创 2010-11-24 10:33:00 · 5822 阅读 · 2 评论 -
大脑的美食
<br />大脑很辛苦,给它吃点什么呢?这个地方收集了很多经典的美餐:<br />http://www.comms.scitech.susx.ac.uk/fft/ <br />从编程语言,到各种架构CPU的文档和编程手册,到芯片设计,到操作系统,密码学,安全、网络、集群、蓝牙、数学......很是全面。<br />特别喜欢操作系统下面的那几篇文档:Operating systemsIntroduction to OS [pdf] Process scheduling [pdf] Res转载 2010-12-18 21:56:00 · 663 阅读 · 0 评论 -
使用 gperf 实现高效的 C/C++ 命令行处理
<br />使用 gperf 实现高效的 C/C++ 命令行处理 GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特定字符串生成散列表、散列函数和查找函数的 C/C++ 代码。通过本文学习如何使用 gperf 实现 C/C++ 代码中高效的命令行处理。 <br />命令行处理和 gperf 的作用<br />命令行处理一直以来都是软件开发中最容易被忽视的领域。几乎所有比较复杂的软件都具有一些可用的命令行选项。事实上,大量 if-else 语句经常被用来处理用户输入,因此转载 2010-12-14 00:10:00 · 925 阅读 · 0 评论 -
gperf--GNU完美哈希函数生成器用户手册(翻译)
<br /> gperf--GNU完美哈希函数生成器用户手册(翻译)<br /><br />START-INFO-DIR-ENTRY<br />* Gperf: (gperf). Perfect Hash Function Generator.<br />END-INFO-DIR-ENTRY<br /><br />介绍<br />************<br /> 'gperf'是一个用C++编写的完美的hash函数生成器.它通过一个完美的hash函数F转翻译 2010-12-13 22:23:00 · 962 阅读 · 0 评论 -
代码优化经验总结(2)
<br /><br /><br /><br />二, 语言级的优化.<br />专题优化:<br />1,变量优化<br />(1)register变量 <br />在声明局部变量的时候可以使用register关键字。这就使得编译器把变量放入一个多用途的寄存器中,而不是在堆栈中,合理使用这种方法可以提高执行速度。函数调用越是频繁,越是可能提高代码的速度。 <br />在最内层循环避免使用全局变量和静态变量,除非你能确定它在循环周期中不会动态变化,大多数编译器优化变量都只有一个办法,就是将他们置成寄存器变量,原创 2010-12-02 22:24:00 · 1456 阅读 · 1 评论 -
代码优化经验总结(4)
<br /><br /><br /><br />零散优化方法<br />1, 用inline或宏,可减少函数调用的开销(运行时的堆栈操作支持语句).另外在函数中的大量相似语句可以用<br />宏来实现(并不一定使变快,但源码可并小并更美观).<br />主意: (1),宏不做类型检查,仅仅是替换,在使用宏定义中的编排格式<br />(2), inline specifier仅仅是对编译器的建议,编译器有权利忽略这个建议。编译器根据函数体的大小,是否有局部对象被声明,函数的复杂性等等决定。<br /><br原创 2010-12-02 22:27:00 · 1252 阅读 · 0 评论 -
代码优化经验总结(3)
<br /><br /><br /><br />4, 函数的优化<br />(1)Inline函数 <br />在C++中,关键字Inline可以被加入到任何函数的声明中。这个关键字请求编译器用函数内部的代码替换所有对于指出的函数的调用。这样做在两个方面快于函数调用:第一,省去了调用指令需要的执行时间;第二,省去了传递变元和传递过程需要的时间。但是使用这种方法在优化程序速度的同时,程序长度变大了,因此需要更多的ROM。使用这种优化在Inline函数频繁调用并且只包含几行代码的时候是最有效的。 <br />(原创 2010-12-02 22:25:00 · 1492 阅读 · 0 评论 -
榨干服务器性能
AIO + Coroutine + Lock-free Q = 高性能服务端原创 2014-04-08 16:58:51 · 1367 阅读 · 0 评论