仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1325|回复: 18
打印 上一主题 下一主题

[学习教程] ASP教程之抹杀办事器功能的10条戒律(2)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:35:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。办事器|功能   应当对数据布局利用全局锁

使数据线程平安的最复杂办法是把它套上一把大锁。为复杂起见,一切的器材都用统一把锁。这类办法会有一个成绩:序列化。为了失掉锁,每个要处置数据的线程都必需列队等待。假如线程被一把锁壅塞,它没有在做任何有效的事。当办事器的负载较轻时,这个成绩其实不罕见,由于一次能够只要一个线程需求锁。在负载很重的情形下,对锁的剧烈争取能够就会成为一个大成绩。

假想在多车道高速公路上产生了一个不测变乱,这条高速公路上的一切车辆都被转向一条狭小的路途。假如车辆很少,这一转换对交通流的速度的影响可以疏忽。假如车辆良多,当车辆渐渐并入那条单通道时,交通壅塞会延长几英里。

有几种手艺可以削减锁竞争。

・ 不要过度回护,也就是说,不长短常需要不要锁住数据。只要需求时才去持有锁,并且工夫不要太长。不要在大段代码四周或频仍履行的代码中没需要地利用锁,这一点很主要。
・ 对数据停止朋分,使它可以用一套自力的锁回护。例如,一个符号表可以按标识符的第一个字母朋分,如许在修正名字以Q开首的符号的值时,就不会去读名字以H开首的符号的值。
・ 利用APIs的Interlocked 系列(InterlockedIncrement,InterlockedCompareExchangePointer等)主动修正数据而不需求锁。
・ 当数据不是常常被修正时可使用多读者/单作者(multi-reader/single-writer)锁。你将取得更好的并发性,虽然锁操作的价值将更高而且你能够会冒饿逝世作者的风险。
・ 在关头局部利用轮回计数器。拜见Windows NT 4.0 service pack 3中的SetCriticalSectionSpinCount API。
・ 假如你不克不及失掉锁,利用TryEnterCriticalSection并做一些其他的有效的任务。

高竞争招致serialization,serialization招致下降CPU的使用率,这促利用户到场更多的线程,了局工作变得更糟。


不用注重多处置器机械

你的代码在多处置器体系上比在单处置器体系上运转得还要糟,这多是件使人恶心的事。一个很天然的设法是,在一个N维体系上运转N次会更好。功能很差的缘由是竞争:锁竞争,总线竞争,和/或缓存列竞争。处置器都在是争取同享资本的一切权,而不是做更多的任务。

假如你必定要编写多线程使用法式的话,你应当在多处置器盒上对你的使用法式停止强度测试和功能测试。单处置器体系经由过程工夫分片地履行线程而供应一个并发性的假象。多处置器盒具有真实的并发性,竞争情况和竞争更轻易产生。

应当一直利用模块化挪用;他们很风趣。

使用同步模块化挪用来履行I/O操尴尬刁难大多半桌面使用法式来讲是适合的。然而,他们不是利用办事器上的CPU(s)的好办法。I/O操作要消费上百万个时钟周期来完成,这些时钟周期原本可以被更好天时用。使用异步I/O你能失掉明显进步的用户恳求率和I/O通量,不外增添了额定的庞杂性。

假如你有需求消费很长工夫的模块化挪用或I/O操作,你应当考挑唆几何资本给他们。你想利用一切的线程仍是有个限制?普通地,利用无限的几个线程要好些。构建一个小的线程池和队列,使用队列来布置线程的任务完成模块化挪用。如许,其他线程就能够拾取和处置你的非模块化的恳求。
</p>  ASP脚本是采用明文(plain text)方式来编写的。
谁可相欹 该用户已被删除
沙发
发表于 2015-2-4 03:06:36 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
第二个灵魂 该用户已被删除
板凳
发表于 2015-2-5 06:08:56 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
山那边是海 该用户已被删除
地板
发表于 2015-2-5 14:03:25 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
蒙在股里 该用户已被删除
5#
发表于 2015-2-11 23:36:43 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
只想知道 该用户已被删除
6#
发表于 2015-3-6 09:09:37 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
再现理想 该用户已被删除
7#
发表于 2015-3-9 20:33:16 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
若天明 该用户已被删除
8#
发表于 2015-3-16 01:33:05 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
海妖 该用户已被删除
9#
发表于 2015-3-17 20:10:42 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
透明 该用户已被删除
10#
发表于 2015-3-21 11:55:22 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
活着的死人 该用户已被删除
11#
发表于 2015-3-31 22:49:39 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
因胸联盟 该用户已被删除
12#
发表于 2015-4-10 08:52:39 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
灵魂腐蚀 该用户已被删除
13#
发表于 2015-4-11 02:10:33 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
精灵巫婆 该用户已被删除
14#
发表于 2015-4-11 06:11:29 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
15#
发表于 2015-4-11 06:21:17 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
分手快乐 该用户已被删除
16#
发表于 2015-4-12 18:13:21 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
飘灵儿 该用户已被删除
17#
发表于 2015-4-16 00:26:34 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
小魔女 该用户已被删除
18#
发表于 2015-4-17 00:45:52 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
简单生活 该用户已被删除
19#
发表于 2015-4-21 13:37:15 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 12:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表