优化你的计数器

计数器|优化

用ASP编写计数器的优化方法

很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便。笔者研究过很多用ASP编写的计数器程序,发现大部份都是在一个访客访问站点的时候就打文本文件或数据库,读取以前的计数值进行加1,然后再写入文件,若网站访问量很大,可能会对系统造成很大的负担,那么有没有优化的方法呢,笔者经过研究测试,答案是:有。

熟悉ASP的朋友都知道,ASP提供一个Application属性用来保存服务器的一些公共变量,我们可以用这个变量来保存记数器的信息。

思路是先设定两个Application变量,一个Application(“TotalCount”),用来保存记数值;另一个Application(“LastwriteTime”),用来保存上次把记数值保存到文件的时间。我们可以自己定义把计数值保存到文件的间隔时间,比如1小时、1天或者一个月。在有访客访网站的时候,让Application(“TotalCount”)进行加1,如果上次保存计数的时间与现在的时间差大于我们设定的保存时间间隔值,那么就把当前的计数值写入文件保存,这样就减少了程序的IO操作,节约了系统的负担。

为了避免发生意外,如断电或者服务器停止反应需待重启等,我们可以设定保存时间间隔为2小时,这样即使发生意外,损失也不会太大。

例程如下:

<%

Dim oFSO '定义FSO组件对象

Dim oFile  '定义读写文件对象

Dim nCount '定义从文件中读取的记数值

Dim sFilePath '定义计数器保存文件的路径

Const iInterval=2 '定义保存时间间隔为2小时

SFilePath=Server.MapPath("Count/Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt

IF Application("TotalCount")=0 or Application("TotalCount")="" THEN

'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值

   Set oFSO=Server.CreateObject("Scripting.FileSystemObject") '实例化文件操作对象oFSO

IF not oFSO.FileExists(sFilePath) THEN

OFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文

      oFile.Write("1") 写入当前的计数值"1"

oFile.close

Application("TotalCount")=1

ELSE

Set oFile = oFSOt.OpenTextFile(sFilePath)

NCount=OFile.ReadLine

Application("TotalCount")=Clng(nCount)+1

OFile.close

End IF

Application("LastwriteTime")= Now '设置最后一次访问的时间为当前时间

ELSE

Application("TotalCount")= Application("TotalCount")+1

IF DateDiff("H", Application("LastwriteTime"),Now)>iInterval THEN

'如果当前时间与上次保存计数值的时间差大于设定的时间间隔,则把计数值重新写入文件

Set oFSO=Server.CreateObject("Scripting.FileSystemObject") '实例化文件操作对象oFSO

OFile=oFSO.OpenTextFile(sFilePath,true) '打开文件

oFile.Write(Application("TotalCount")) '写入当前的计数值

oFile.close

Application("LastwriteTime")= Now '设置最后一次访问的时间为当前时间

END IF

End IF

Response.Write("欢迎光临本网站,你是访问本网站的第" & Application("TotalCount") & "位访客!")

%>

本例程在Windows2000 IIS5.0下通过。

时间: 2024-12-01 05:29:49

优化你的计数器的相关文章

JavaScript中对循环语句的优化技巧深入探讨_javascript技巧

循环是所有编程语言中最为重要的机制之一,几乎任何拥有实际意义的计算机程序(排序.查询等)都里不开循环. 而循环也正是程序优化中非常让人头疼的一环,我们往往需要不断去优化程序的复杂度,却因循环而纠结在时间复杂度和空间复杂度之间的抉择. 在 javascript 中,有3种原生循环,for () {}, while () {}和do {} while (),其中最为常用的要数for () {}. 然而for正是 javascript 工程师们在优化程序时最容易忽略的一种循环. 我们先来回顾一下for

用ASP编写计数器的优化方法

计数器|优化 很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便.笔者研究过很多用ASP编写的计数器程序,发现大部份都是在一个访客访问站点的时候就打文本文件或数据库,读取以前的计数值进行加1,然后再写入文件,若网站访问量很大,可能会对系统造成很大的负担,那么有没有优化的方法呢,笔者经过研究测试,答案是:有. 熟悉ASP的朋友都知道,ASP提供一个Application属性用来保存服务器的一些公共变量,我们可以用这个变量来保存记数器的信息. 思

秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

上节概要:   上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中, 介绍了 Access的并发上限,及从某种程度上 秋色园QBlog 针对并发上限进行了多个数据的划分,从而最大并发上限从64提升到64*N(个数据库),虽然总和的最大并发值是上升了,但是单个库的最大值并没有变化,或者说单个表的最大并发值没有发生变化,上限仍是64. 于是,对于频繁产生更新操作的访问计数器(用户表及文章表),是该进入优化的方案了.   本节概要:   本节将介绍秋色

Mapreduce和Yarn概念,参数优化,作用,原理,MapReduce计数器 Counter,MapReduce 多job串联之ControlledJob(来自学习资料)

3.3. MapReduce与YARN 3.3.1 YARN概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序 3.3.2 YARN的重要概念 1.  yarn并不清楚用户提交的程序的运行机制 2.  yarn只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源) 3.  yarn中的主管角色叫ResourceManager 4.  yarn中具体提供运算资源的

通过优化网页HTML代码提高网页访问速度

访问|速度|网页|优化 一.不要将整个页面放到到一个table中     一般大家都是用表格来进行布局的,将整个页面的内容都塞进了一个Table(表格)里,然后再由单元格td来划分各个"块"的布局,这种网站的显示速度是绝对慢的.因为Table要等里面所有的内容都加载完毕后才显示出来的,如果某些内容无法访问,就会拖延整个页面的访问速度.在布局时把整个页面分成三部分,头部top.中部middle.版权(尾部)bottom.中部最好再多分几部分,因为,现在大家的首页一般都是分成好几个栏目的内

ISA Server 2000性能的监视与优化(三)

其他的调节和监视工具 ISA Server包括了许多附加调节工具.使用这些工具可以优化和监视ISA Server性能.如,可以通过调整服务器预期日连接数优化ISA Server的性能:可以通过调整保存Web内容的物理内存数量来调节其缓存性能等. ISA Management中除了警报.日志以及报告功能等,还有许多性能计数器,可以用来收集与系统性能相关的数据.这些数据可以在Windows 2000的性能控制台中查看,也可以在ISA Server的内置控制台-ISA Server 性能监视器中查看.

ASP.NET几种进行性能优化的方法及注意问题

asp.net|问题|性能|优化 网站的性能对于ASP.NET程序开发人员来说非常重要.一个优秀的网站虽然有美观的页面设计,完善的服务功能,但是打开网页时有长时间的延迟,用户最终将会无法忍受.尤其对于大型的电子商务网站而言,每秒钟有数万用户同时访问,没有良好的网站性能,根本无法满足庞大的需求. ASP.NET作为全新一代的动态网页生成系统,它在平台性能方面与原有的ASP相比已有了一个本质的提高.但要在此基础上开发出专业水准的.符合生产标准的.受用户欢迎的web应用程序,还需要开发人员从编程的角度

ActionScript3.0中建立一个帧频计数器

在这个教程中,你将学会如何测量Flash中当前的帧频,并将其显示出来. 帧频的重要性每一帧上都是一幅静止的图片,快速连续的帧会产生动画,每秒的帧数越多,展现的动画也就越流畅. 测帧频能让我们检测动画的进程,如果需要的话还可以优化动画. 当在不同的运行环境中测试动画时这个是非常有用的,例如浏览器中,电脑中,电视或手机中. 我们可以通过使用getTime()方法测帧频,并即时的在舞台中创建文本域来输出结果. --------------------------– 第一步:创建新文档打开Flash并创

SQL Server数据库优化方案

server|数据|数据库|优化 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有