`
文章列表
总结了一下工作中常见的性能优化思路和手段(点击看大图): 文章系本人原创,转载请注明出处和作者
线程的同步和互斥: 线程的同步:指多线程通过特定的手段(如互斥量)来控制线程之间的执行顺序。 线程的互斥:实指对共享资源的约束访问。多线程环境中,某些资源只允许一个线程使用,这类资源成为临界资源,线程之 ...
正如动静是相对的概念,有了它们,世界才充满盎然生气;变和不变也是哲学上的对立统一,在代码的世界里也一样;同步异步呢?在这一篇文字里面已经很粗略地提到了同步和异步各自有些什么好处,接下来,我不妨说一些同步和异步互相转化的故事。   先来看看这一段代码:   setTimeout(function(){ while(true){ alert("In"); } },0); while(true){ alert("Out"); }   它的输出应该是怎样的呢?你可以试一试。 不同浏览器下它的表现不同,有的浏览器下一直显示In的 ...
在这篇文章里,我们可以见到许多有意思的编程风格,又没有精神为之一振的感觉,仿佛里面的例子就在自己身上,或者离自己很近。其实,对于文档、代码的评审,也是有诸多风格可言的,我这里列举一些有意思的典型:   一坨屎型评审 阅读文档、代码的时候,这些东西在自己眼里就是一坨屎:“我这么高智商的人都看不懂,明显是你有问题!”。 这样的人有一个他自己相当认可的世界观,凡是和这个世界观相冲突的无论对错的事务,必须强力排斥。这样的人眼中容不下复杂的东西,复杂对他的智商而言是一种侮辱,他会选择下结论的方式来拒绝自己对文档或代码的进一步阅读;对于和自己预期不一致的设计和实现,必须升级为人身攻击,挥舞狼牙棒子痛 ...
国内:杨建的blog:http://blog.sina.com.cn/iyangjian,新浪的架构师,在高并发场景下网站的设计有深入研究。 蛟龙居:http://www.blogjava.net/BlueSUN/,国内第一批搞Groovy的人。酷壳网:http://coolshell.cn/,Amazon陈皓的个人站点,一个经验丰富的程序员,有很多欢乐的故事。robbin的自言自语:http://robbin.iteye.com/,ITEye创始人Robbin的个人博客。RednaxelaFX的博客:http://rednaxelafx.iteye.com/,淘宝对于虚拟机有深入研究的牛人。 ...
从08年7月28日正式加入华为,到12年1月17日正式离开华为,三年半的光阴,我一直没有机会好好整理一下我的行囊。现在回过头来,却又发现故事太多,无从下笔。也罢也罢,挑选我在华为五个令我深刻的瞬间,这些故事我带着不 ...
SOPA和PIPA是什么? SOPA:《禁止网络盗版法案》(Stop Online Piracy Act)。通过该法案,美国司法部及其他版权持有人将可以更便捷地申请法院禁令以对付盗版及贩售冒牌货的网站。反对者认为该法案侵犯了美国宪法第一修正案,是 ...
最近有机会了解到了诸多IT业公司,了解到了程序员的生存状态,也看到了各种不同的做产品的方式;有机会得以从电信领域转向互联网领域,在这里我谈一谈在我眼中的电信领域和互联网领域的区别。     营销模式   电信 ...
最近铁道部购票已经成为了热点话题,毛病多得一塌糊涂,如果让你来设计铁道部购票网站,你会怎么做?   这样的网站属于实时性要求较高、并发性要求非常高、容量要求一般的类型,以下是我简单的想法:   1、部署是基于CDN的,对于车票查询的环节来说,这是没有问题的。   2、数据库表设计上面,应当有一张车次表,每行代表一趟车,至少有这样的字段:还剩多少张,已被锁定多少张。   3、每次发生订票操作时,先去查询当前是否有余票,有的话锁定一张等待用户操作,如果半小时内无法完成,锁定票放回。   4、查询部分,集群中放置分布式缓存,存放数据的静态页面,但由于车票查询实时性有一定要求,可以设 ...
工作变更的事宜快要告一段落了,从电信行业转向互联网行业。其实我不算一个很有经历的人,但是我依然愿意回头望望走过的路,记录下我的体验、感触,给那些刚入职的兄弟们、遇到困惑的朋友们,说一些小小的事情,给一 ...
在这篇文章中,介绍了原型链继承的情形,事实上,JavaScript虽没有给出继承的关键字,但是我们依然能够拿出一些好办法实现。   1、原型链继承: var Base = function() { this.level = 1; this.name = "base"; this.toStr ...
题目:一只青蛙一次可以跳1级台阶,也可以跳2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 这道题还被ITEye放在了博文视点杯有奖答题活动里面。   我提供三种解法。   1、递归求解: 青蛙每跳一次前,有这样三种情况: (1)只剩1级或0级台阶了,只能跳一步或者无法再跳了,那么这条路也走到了终点,走法的种类数可以加1; (2)可以走2级台阶; (3)可以走1级台阶。 于是递归方法求解: /** * 递归方法 */ public static int calc(int n) { return recursiveCalc(n, 0); } ...
同步处理和异步处理的好处比较:   同步的好处: 1、同步流程对结果处理通常更为简单,可以就近处理。 2、同步流程对结果的处理始终和前文保持在一个上下文内。 3、同步流程可以很容易捕获、处理异常。 4、同步流程是最天然的控制过程顺序执行的方式。   异步的好处: 1、异步流程可以立即给调用方返回初步的结果。 2、异步流程可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,例如结果记录等等。 3、异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理。 4、异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率 ...
观察者模式,指的是定义一种对象间的一对多的关系,当一个对象的状态发生变化的时候,所有依赖于它的对象都将得到通知并更新自己。   现在要说的分歧在这里: “推”的方式是指,Subject维护一份观察者的列表,每当 ...
今天某面试题,要在任意给定的字符串中,寻找最长回文串的长度。 注:回文串是指abc、abbc、aaabccc、aaaccc这种左右对称的字符串。 比如:abcaabbbaad字符串中,最长回文串的长度是7。   /** * 思路:<br> * 动态规划。一个指针从头往后遍历;一个指针从后往前遍历,把之前比较过的结果存到二维数组内,每个单元表示截止匹配到某一个字符串,所属的最长子串长度。<br> * 因为从前往后和从后往前遍历是同一个串,所以这个二维数组是轴对称的。<br> * 关键是这一步:当某时刻匹配上时,statArr[i][j] ...
Global site tag (gtag.js) - Google Analytics