ASP网站制作之抹杀办事器功能的10条戒律(转,接前文...
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。办事器|功能 应当分派和释放多个对象你应当尽可能防止过量分派内存,由于内存分派多是价值奋发的。释放内存块能够更昂贵,由于大多半分派算符老是妄图毗连邻近的已释放的内存块成为更大的块。直到Windows NT? 4.0 service pack 4.0,在多线程处置中,体系堆凡是都运转得很糟。堆被一个全局锁回护,而且在多处置器体系上是不成扩大的。
不该该思索利用处置器高速缓存
大多半人都晓得由虚拟内存子体系招致的hard 页毛病价值很高,最好防止。然而很多人以为其他内存会见办法没有甚么区分。自从80486今后,这一概念就不合错误了。古代的CPUs比RAM要快很多,RAM最少需求两级内存缓存 ,高速L1 缓存能保留8KB数据和8KB指令,而较慢的L2 缓存能保留几百KB的数据和代码,这些数据和代码夹杂在一同。L1 缓存中内存区域的一个援用需求一个时钟周期,L2 缓存的援用需求4到7个时钟周期,而主内存的援用需求很多个处置器时钟周期。后一数字不久将会超越100个时钟周期。在很多方面,缓存像一个小型的,高速的,虚拟内存体系。
至于弛缓存有关的根基内存单位不是字节而是缓存列。Pentium 缓存列有32个字节宽。Alpha 缓存列有64个字节宽。这意味着在L1 缓存中只要512个slot给代码和数据。假如多个数据一同利用(工夫地位)而其实不存储在一同(空间地位),功能会很差。数组的空间地位很好,而互相毗连的列表和其他基于指针的数据布局的地位常常很差。
把数据打包到统一个缓存列中凡是会有益于进步功能,然而它也会损坏多处置器体系的功能。内存子体系很难调和处置器间的缓存。假如一个被一切处置器利用的只读数据,和一个由一个处置器利用并频仍更新的数据同享一个缓存 列,那末缓存将会消费很长工夫更新这个缓存列的拷贝。这个Ping-Pong高速游戏凡是被称为"缓存 sloshing"。假如只读数据在一个分歧的缓存 列中,就能够防止sloshing。
对代码停止空间优化比停止速度优化效力更高。代码越少,代码所占的页也越少,如许需求的运转设置和发生的页毛病也会更少,同时占有的缓存 列也会更少。但是,某些中心函数应当停止速度优化。可以使用profiler去辨认这些函数。
决不要缓存频仍利用的数据。
软件缓存可以被各类使用法式利用。当一个盘算价值很高时,你会保留了局的一个拷贝。这是一个典范的时空折衷办法:就义一些存储空间以节俭工夫。假如做得好,这类办法能够十分无效。
你必需准确地停止缓存。假如缓存了毛病数据,就会华侈存储空间。假如缓存得太多,其他操作可使用的内存将会很少。假如缓存得太少,效力又会很低,由于你必需从头盘算被缓存 漏掉的数据。假如将工夫敏感数据缓存得工夫太长,这些数据将会过时。普通,办事器更关怀的是速度而不是空间,所以他们要比桌面体系停止更多的缓存。必定要按期去除不必的缓存,不然将会有运转设置成绩。
应当创立多个线程,越多越好。
调剂办事器中起感化的线程数量是很主要的。假如线程是I/O-bound的,将会消费良多工夫用来守候I/O的完成-一个被壅塞的线程就是一个不做任何有效任务的线程。到场额定的线程可以增添通量,然而到场过量的线程将会下降办事器的功能,由于高低文互换将会成为一个严重的overhead。高低文互换速度应当低的缘由有三个:高低文互换是纯真的overhead,对使用法式的任务没有任何好处;高低文互换用尽了名贵的时钟周期;最糟的是,高低文互换将处置器的缓存填满了没用的数据,交换这些数据是价值奋发的。
有良多工作是依托你的线程化布局的。每一个客户端一个线程是相对不适合的。由于关于大批用户端,它的扩大性欠好。高低文互换变得难以忍耐,Windows NT用尽了资本。线程池模子会任务得更好,在这类办法中一个工人线程池将处置一条恳求列,由于Windows 2000供应了响应的APIs,如QueueUserWorkItem。
</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 那么,ASP.Net有哪些改进呢? 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
页:
[1]
2