老赵点滴


  先做人,再做技术人员,最后做程序员。
  我的理想:“让外国人看中国人写的技术书籍和文章”。Try as I might
posts - 290, comments - 10853, trackbacks - 158, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

性能优化

     摘要: 异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前文《正确使用异步操作》中解释过了。对于大多数互联网应用来说,性能瓶颈数据库访问。换句话说,一个请求在数据库操作上所花的时间往往是最多的——并且占总时间的90%以上。因此,当Web应用程序的吞吐量因为数据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化。那么我们又该如何使用LINQ to SQL进行异步查询呢?  阅读全文

posted @ 2008-03-01 01:51 Jeffrey Zhao 阅读(14467) | 评论 (32)  编辑 |

     摘要: 本想写一点有关LINQ to SQL异步调用的话题,但是在这之前我想还是先写一篇文章来阐述一下使用异步操作的一些原则,避免有些朋友误用导致程序性能反而降低。这篇文章会讨论一下在.NET中有关异步操作话题,从理论出发结合实际,以澄清概念及避免误用为目标,并且最后提出常见的异步操作场景和使用案例。这样我们就可以知道什么时候该使用异步操作,什么时候会得不偿失。  阅读全文

posted @ 2008-02-24 22:03 Jeffrey Zhao 阅读(12787) | 评论 (27)  编辑 |

     摘要: 目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。  阅读全文

posted @ 2008-02-19 03:02 Jeffrey Zhao 阅读(12830) | 评论 (53)  编辑 |

     摘要: 就是那本书,提出了14条开发高性能Web应用准则的书。  阅读全文

posted @ 2007-11-26 14:26 Jeffrey Zhao 阅读(6280) | 评论 (38)  编辑 |

posted @ 2007-06-23 06:31 Jeffrey Zhao 阅读(1771) | 评论 (3)  编辑 |

     摘要: 在上次的文章中,我们已经提到了一种能够跨子域名进行AJAX请求的方法。我们现在就来实现一个对开发人员透明的实现,它会自动判断这个请求是否是跨子域名,如果不是,则使用传统的方法发出AJAX请求,反之则使用我们的方式。  阅读全文

posted @ 2007-02-05 02:31 Jeffrey Zhao 阅读(3806) | 评论 (15)  编辑 |

     摘要: 事情的经过是这样的,还是那个个人门户网站。其中有个功能就是RSS订阅,每个订阅作为一个模块出现在页面上。如果一个用户订阅了比较多的RSS,则在打开页面时所有的RSS模块就会开始加载,这时候可能就会需要十几秒甚至更长的时间才能加载完毕。这时,如果用户需要作别的AJAX操作——比如保存页面设置——那么长时间的等待就不可避免了,谁让浏览器对于相同域名只能同时存在两个连接呢?不过这可不是一个好的用户体验,那么我们需要怎么做呢?  阅读全文

posted @ 2007-02-02 02:39 Jeffrey Zhao 阅读(4508) | 评论 (34)  编辑 |

     摘要: 还记得《ASP.NET AJAX Under the Hood Secrets》吗?这是我在自己的Blog上推荐过的唯一一篇文章(不过更可能是一时兴起)。在这片文章里,Omar Al Zabir提出了他在使用ASP.NET AJAX中的一些经验。其中提到的一点就是:Browsers do not respond when more than two calls are in queue。简单的说,就是在IE中,如果同时建立了超过2两个连接在“连接状态”中,但是没有连接成功(连接成功之后就没有问题了,即使在传输数据),浏览器会停止对其他操作的响应,例如点击超级链接进行页面跳转,直到除了正在尝试的两个连接就没有其他连接时,浏览器才会重新响应用户操作。出现这个问题一般需要3个条件:

同时建立太多连接,例如一个门户上有许多个模块,它们在同时请求服务器端数据。
响应比较慢,从浏览器发起连接,到服务器端响应连接,所花的时间比较长。
使用IE浏览器,无论IE6还是IE7都会这个问题,而FireFox则一切正常。

在IE7里居然还有这个bug,真是令  阅读全文

posted @ 2007-01-27 03:27 Jeffrey Zhao 阅读(4333) | 评论 (77)  编辑 |

     摘要: 我们已经知道,脚本文件的并行下载能够提高页面的加载速度。但是目前还有一个急需解决的问题,那就是对于FireFox浏览器的优化。在我们之前使用的优化方法,无论是简单实用的document.write还是食之无味的defer属性,FireFox浏览器都对此置若罔闻。不过FireFox也不是绝对地“冥顽不灵”,开发人员还是有方法对它进行优化的。  阅读全文

posted @ 2007-01-25 01:19 Jeffrey Zhao 阅读(4462) | 评论 (59)  编辑 |

     摘要: 谈谈优化难度:比较document.write与defer、突破两个连接的限制  阅读全文

posted @ 2007-01-22 14:42 Jeffrey Zhao 阅读(4066) | 评论 (30)  编辑 |

     摘要: 现在哪里还找得到不引入JavaScript脚本文件的Web应用?使用脚本文件的好处多多,其中最重要的可能就是提供缓存能力了。使用脚本文件之后再加上缓存,可以大大降低数据传输量,提高页面打开的速度。不过脚本文件的引入也不是简单得不值一提,我们完全有能力来优化它。  阅读全文

posted @ 2007-01-20 01:25 Jeffrey Zhao 阅读(3611) | 评论 (46)  编辑 |

     摘要: 最近在为某个人门户站点作优化。

  从传统意义上来说,这个站点的各方面都属中规中矩。不过作为一个以客户端为中心的Web应用,其性能,尤其是它的感知性能(Perceived Performance),经常会严重受制于浏览器本身。一个没有对客户端数据访问模型经过精心设计和优化的应用,其导致的结果往往就是无法充分利用带宽,让用户等待的时间变长。换句话说,其Perceived Performance需要进一步的提高。

  突破浏览器限制,充分利用带宽,提高性能,尤其是Perceived Performance等等,就是我这次优化的目的。在接下来的几篇文章里,我将以数据说话,探讨浏览器的限制,并从多个方面来谈一下这次优化的各种方式。由于该个人门户使用了ASP.NET AJAX进行开发,因此我也将会给出一些基于ASP.NET AJAX的解决方案,希望会有一定参考价值,对朋友们能有所帮助。
  阅读全文

posted @ 2007-01-18 17:08 Jeffrey Zhao 阅读(4578) | 评论 (28)  编辑 |