获取远程服务器时间

上传人:kms****20 文档编号:40508431 上传时间:2018-05-26 格式:DOC 页数:13 大小:41.50KB
返回 下载 相关 举报
获取远程服务器时间_第1页
第1页 / 共13页
获取远程服务器时间_第2页
第2页 / 共13页
获取远程服务器时间_第3页
第3页 / 共13页
获取远程服务器时间_第4页
第4页 / 共13页
获取远程服务器时间_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《获取远程服务器时间》由会员分享,可在线阅读,更多相关《获取远程服务器时间(13页珍藏版)》请在金锄头文库上搜索。

1、获取远程服务器时间获取远程服务器时间function getTime()var xmlhttp = new ActiveXObject(“MSXML2.XMLHTTP.3.0“); xmlhttp.open(“GET“, “http:/192.168.0.190/“, false); xmlhttp.setRequestHeader(“If-Modified-Since“,“q“);xmlhttp.send();var dateStr=xmlhttp.getResponseHeader(“Date“); var d=new Date(dateStr); var riqi =d.getFullY

2、ear()+“-“+(Number(d.getMonth()+1)+“-“+d.getDate()+“ “+d.getHours()+“:“+d.getMinutes()+“:“+d.getSeconds();document.write(riqi);主题:企业端本周工作安排时间:2010 年 12 月 06 日 16:20 - 17:00地点:高新三楼会议室zjw8965异曲同工自圆其说一五一十口是心非心直口快无与伦比啼笑皆非里应外合面面相觑多此一举左右开弓天方夜谭羊入虎口白纸黑字俯首称臣石破天惊三从四德四大皆空德高望重四脚朝天三言两语正中下怀提高 应用程序性能的常说的神话 有用的提高

3、应用程序性能的技巧 A 应用程序操作数据库的建议 A 中的缓存与后台处理进程 现在写一个 的 web 应用程序变得非常的简单,许多的程序员都不愿花时间去构建一个性能良好的应用程序。本文将要讨论提高 web 应用程序性能的十大方法。我将不限于只讨论 应用程序的内容,因为它们只是 web 应用程序的一个子集。本文也不能提供一个完整提高 web 应用程序性能的指南,因为这需要一本书的篇幅。本文只提供一个提高 web 应用程序性能的良好的开端。 (剩下的只有我们自己慢慢研究了) 。 在工作这外,我经常去攀岩,在每次攀岩之前,我都会重温一下攀岩线路图及看一下前面的成功的攀岩者的建议。因为我们需要它们

4、的成功经验。同样的,当你需要修改某个有性能问题的程序或者是要开发一个高性能的站点时,你也需要学习怎么样写一个高性能的 web 应用程序。 我个人的经验主要来源于在微软的 组担任程序经理,运行和管理 http:/ Community Server(它是 Forums,.Text, and nGallery 的集成升级版本软件) 。我想这些经验能我让来帮助大家。 你也许会想到把你的应用程序划分成不同的逻辑层。你也可能听过三层物理架构或 N 层架构,这是最常用的架构模式,它把不同的程序功能物理的分配给各个硬件来执行。这样,如果我们想提高应用程序的性能的话,加一些硬件就可以达到目的了。按理说这种方

5、法能提高应用程序的性能,但是我们应该避免使用这种方法。所以,只要有可能,我们都应该把 页面和它用到的组件放到一个应用程序中运行。 因为分布式的布署,要用到 web services 或者 Remoting,它将使应用程序的性能下降 20%或者更多。 对于数据层有点不同,最好还是把它独立出来布署,用一个单独的硬件来运行它。虽然这样,但是数据库仍然是应用程序性能的瓶颈。因此,当你想优化你的程序的时候,首先想到的地方就应该是优化数据层了。 在修改应用程序的出现性能问题的地方之前,你要先确认出问题的地方的程序看起来很严密,性能分析器对于查找应用程序哪些地方花费了多长时间非常有用。这些地方是我们用直觉

6、感觉不到的。 本文讨论两种类型的性能优化:一种是大的性能优化(big optimizations),如用 的 Cache;另一种是小的性能优化(tiny optimizations) 。小幅的性能优化有时候非常有用。你只对你的代码作一个小的改到,然后一次调用它一千或一万次。作一次大的性能优化,你会发生你的应用程序的速度会有一个很大的提升。作一次小的性能优化,也许每次请求只能提高一微秒,但是如果每天的请求量很大的话,那么应用程序就有很显著的性能提升。 数据层的性能 当你要优化一个应用程序的性能的时候,你可以按下面的顺序工作:你的代码要访问数据库?如果要,访问数据库频率怎么样?同样,这种测试方法

7、也可以用在用 web services 或 Remoting 的程序代码中。本文将不讨论用 Web services 和 Remoting 的程序优化的问题。 如果在你的代码中有一段必须访问数据库的请求,而你在其它的地方又看到实现同样的功能 的代码,那么你首先要优化它。修改和完善继续测试,除非你有一个非常大的性能问题,你的时间最好花在优化查询,连接数据库,返回数据集的大小,以及一次查询往返回的时间上。 根据经验的总结,让我们来看看十个能帮助你提升你的应用程序性能的经验,我将按将它们提升效率的多少从大到小小依次说明。 一、返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求。每

8、次往返降低了你的应用程序的每秒能够响应请求的次数。通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量。 如果你是用动态的 SQL 语句来返回多个数据集,那我建议你用存储过程来替代动态的 SQL 语句。是否把业务逻辑写到存储过程中,这个有点争议。但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,这是一个好事情。 用 SqlCommand 对象的 ExecuteReader 方法返回一个强类型的业务对象,再调用 NextResult 方法来移动数据集指针来定位数据

9、集。示例一演示了一个返回多个 ArrayList 强类型对象的例子。只从数据库中返回你需要的数据可以大大的减小你的服务器所耗用的内存。 二、对数据进行分页 ASP。NET 的 DataGrid 有一个非常有用的功能:分页。如果DataGrid 允许分页,在某一时刻它只下载某一页的数据,另外,它有一个数据分页的济览导航栏,它让你可以选择浏览某一页,而且每次只下载一页的数据。 但是它有一个小小的缺点,就是你必须把所有的数据都绑定到DataGrid 中。也就是说,你的数据层必须返回所有的数据,然后DataGrid 再根据当前页过滤出当前页所需要的数据显示出来。如果有一个一万条记录的结果集要用 Dat

10、aGrid 进行分页,假设DataGrid 每页只显示 25 条数据,那就意味着每次请求都有 9975 条数据都是要丢弃的。每次请求都要返回这么大的数据集,对应用程序的性能影响是非常大的。 一个好的解决方案是写一个分页的存储过程,例子 2 是一个用于对 Northwind 数据库 orders 表的分页存储过程。你只需要传当前页码,每页显示的条数两个参数进来,存储过程会返回相应的结果。 在服务器端,我专门写了一个分页的控件来处理数据的分页,在这里,我用了第一个方法,在一个存储过程里面返回了两个结果集:数据记录总数和要求的结果集。 返回的记录总数取决于要执行查询,例如,一个 where 条件可以

11、限制返回的结果集的大小。因为在分页界面中必须要根据数据集记录的大小来计算总的页数,所以必须要返回结果集的记录数。例如,如果一共有 1000000 条记录,如果用 where 条件就可以过滤成只返回 1000 条记录,存储过程的分页逻辑应该知道返回那些需要显示的数据。 三、连接池 用 TCP 来连接你的应用程序与数据库是一件昂贵的事情(很费时的事情) ,微软的开发者可以通过用连接池来反复的使用数据库的连接。比起每次请求都用 TCP 来连一次数据库,连接池只有在不存在有效的连接时才新建一个 TCP 连接。当关闭一个连接的时候,它会被放到池中,它仍然会保持与数据库的连接,这样就可以减少与数据库的 T

12、CP 连接次数。 当然,你要注意那些忘记关的连接,你应在每次用完连接后马上关闭它。我要强调的是:无论什么人说.net framework 中的 GC(垃圾收集器)总会在你用完连接对象后调用连接对象的 Close 或者Dispose 方法显式的关闭你的连接。不要期望 CLR 会在你想象的时间内关掉连接,虽然 CLR 最终都要销毁对象和关闭边接,但是我们并不能确定它到底会在什么时候做这些事情。 要用连接池优化,有两条规则,第一,打开连接,处理数据,然后关闭连接。如果你必须在每次请求中多次打开或关闭连接,这好过一直打开一个边接,然后把它传到各个方法中。第二,用相同的连接字符串(或者用相同的用户标识,

13、当你用集成认证的时候) 。如果你没有用相同的连接字符串,如你用基于登录用户的连接字符串,这将不能利用连接池的优化功能。如果你用的是集成的论证,因为用户很多,所以你也不能充分利用连接池的优化功能。.NET CLR 提供了一个数据性能计数器,它在我们需要跟踪程序性能特性的时候非常有用,当然也包括连接池的跟踪了。 无论你的应用程序什么时候要连在另一台机子的资源,如数据库,你都应该重点优化你连资源所花的时间,接收和发送数据的时间,以及往返回之间的次数。优化你的应用程序中的每一个处理点(process hop) ,它是提高你的应用的性能的出发点。 应用程序层包含与数据层连接,传送数据到相应的类的实例以及

14、业务处理的逻辑。例如,在 Community Server 中,要组装一个Forums 或者 Threads 集合,然后应用业务逻辑,如授权,更重要的,这里要完成缓存逻辑。四、 ASP。NET 缓存 API 在写应用程序之前,你要做的第一件事是让应用程序最大化的利用ASP.NET 的缓存功能。 如果你的组件是要在 A 应用程序中运行,你只要把System.Web.dll 引用到你的项目中就可以了。然后用HttpRuntime.Cache 属性就可访问 Cache 了(也可以通过Page.Cache 或 HttpContext.Cache 访问) 。 有以下几条缓存数据的规则。第一,数据可能会被

15、频繁的被使用,这种数据可以缓存。第二,数据的访问频率非常高,或者一个数据的访问频率不高,但是它的生存周期很长,这样的数据最好也缓存起来。第三是一个常常被忽略的问题,有时候我们缓存了太多数据,通常在一台 X86 的机子上,如果你要缓存的数据超过 800M 的话,就会出现内存溢出的错误。所以说缓存是有限的。换名话说,你应该估计缓存集的大小,把缓存集的大小限制在 10 以内,否则它可能会出问题。在 A 中,如果缓存过大的话也会报内存溢出错误,特别是如果缓存大的 DataSet 对象的时候。 这里有几个你必须了解的重要的缓存机制。首先是缓存实现了“最近使用”原则( a least-recently-u

16、sed algorithm) ,当缓存少的时候,它会自动的强制清除那些无用的缓存。其次 “条件依赖”强制清除原则(expiration dependencies) ,条件可以是时间,关键字和文件。以时间作为条件是最常用的。在 2.0 中增加一更强的条件,就是数据库条件。当数据库中的数据发生变化时,就会强制清除缓存。要更深入的了解数据库条件依赖请看 Dino Esposito 在 MSDN 杂志 2004 年七月刊的 Cutting Edge 专栏文章。A 的缓存架构如下图所示: 五、 预请求缓存 在前面,我提到过即使我们只对某些地方作了一个小小的性能改进也可以获得大的性能提升,我非常喜欢用预请求缓存来提升程序的性能。 虽然 Cache API 设计成用来保存某段时间的数据,而预请求缓存只是保存某个时期的某个请求的内容。如果某个请求的访问频率高,而且这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号