首页/技术开发/内容

ASP中用Join与Array,可以加快字符连接速度。

技术开发2024-06-02 阅读()
.5
////////////////////////////////////////////////////
//总结
////////////////////////////////////////////////////
{
测试结果很明显,数组连接及用ADODB.Stream建立缓冲文件在速度上占了上风
服务器端使用JavaScript会使客户端的反应加快?!!??
性能上VBScript在数组连接上性能很好
其他的不如JavaScript
但数组连接及用ADODB.Stream建立缓冲文件这两者各有缺陷
I 对于数组连接,用法比较复杂
1.数组连接在实际运用中,必须设置一个指针变量
2.使用上,由于数组的大小是在变化的
a.对于JavaScript,
必须用"var arrTemp=new Array();"来声明,这样可以不断扩大数组的尺寸
b.对于VBScript
必须用Dim arrTemp()来声明,并在程序用使用ReDim Preserve arrTemp(p+size)来扩大数组的尺寸,Preserve是用来保留数组中原有的内容
II对于ADODB.Stream建立缓冲文件的方法
我们必须设置一个零时文件,但每调用一次页面都要写这个文件,如果使用同一个零时文件,这就容易出现冲突
可以使用当前的时间来做零时文件名,以减少冲突,或者给文件作一个标示,如果文件没有过期,便直接读取,过期了,便打开写入新的内容
后者比较合适,前者容易造成零时文件的泛滥,垃圾成堆
但是后者实现也很复杂

此外,我没测试内存使用情况,不知道数组连接对内存使用会造成多大影响

}
////////////////////////////////////////////////////
//附1
////////////////////////////////////////////////////
{下面是用于对照的php脚本}
////////////////////////////////////////////////////
//--------------------------------------------------
//test.php
//使用字符连接
//对应于test-js2.asp和test-vbs2.asp
//--------------------------------------------------
<?
$t=gettimeofday();
for($i=0;$i<10000;$i++){
$s.=$i."\n";
}
echo($s."\n");
$now=gettimeofday();
echo(($now["sec"]-$t["sec"])*1000000+$now["usec"]-$t["usec"]);
?>
//--------------------------------------------------
////////////////////////////////////////////////////
//--------------------------------------------------
//test2.php
//直接输出
//对应于test-js3.asp和test-vbs3.asp
//--------------------------------------------------
<?
$t=gettimeofday();
for($i=0;$i<10000;$i++){
echo($i."\n");
}
$now=gettimeofday();
echo(($now["sec"]-$t["sec"])*1000000+$now["usec"]-$t["usec"]);
?>
//--------------------------------------------------
////////////////////////////////////////////////////
//--------------------------------------------------
//test3.php
//使用数组连接
//对应于test-js.asp和test-vbs.asp
//--------------------------------------------------
<?
$t=gettimeofday();
for($i=0;$i<10000;$i++){
$s[$i]=$i;
}
echo(implode("\n",$s));
$now=gettimeofday();
echo("<br>".(($now["sec"]-$t["sec"])*1000000+$now["usec"]-$t["usec"]));
?>
//--------------------------------------------------
////////////////////////////////////////////////////
//--------------------------------------------------
//test4.php
//使用零时文件
//对应于test-js4.asp,test-js5.asp,test-vbs4.asp和test-vbs5.asp
//--------------------------------------------------
<?
$t=gettimeofday();
$fp=fopen("temp.txt","w");
for($i=0;$i<10000;$i++){
fwrite($fp,$i."\n");
}
fclose($fp);
//readfile("temp.txt");
include("temp.txt");
$now=gettimeofday();
echo("<br>".(($now["sec"]-$t["sec"])*1000000+$now["usec"]-$t["usec"]));
?>
//--------------------------------------------------
////////////////////////////////////////////////////
<Celeron 466MHz 256MB SDRAM>
[Windows98SE Apache]
[InternetExplorer 6.0 Service Park 1]
//test.php(单位:微秒(北联网教程,专业提供视频软件下载)

第1页  第2页  第3页  第4页  第5页  第6页  第7页  第8页  第9页  第10页  第11页  第12页  第13页  第14页  第15页  第16页  第17页  第18页  第19页  第20页  第21页  第22页  第23页  第24页  第25页  第26页  第27页  第28页  第29页  第30页  第31页  第32页  第33页  第34页  第35页  第36页  第37页  第38页  第39页  第40页  第41页  第42页  第43页  第44页  第45页  第46页  第47页  第48页  第49页  第50页  第51页  第52页  第53页  第54页  第55页  第56页  第57页  第58页  第59页  第60页  第61页  第62页  第63页  第64页  第65页  第66页  第67页  第68页  第69页  第70页  第71页  第72页  第73页  第74页  第75页  第76页  第77页  第78页  第79页  第80页  第81页  第82页  第83页  第84页  第85页  第86页  第87页  第88页  第89页  第90页  第91页  第92页  第93页  第94页  第95页  第96页  第97页  第98页  第99页  第100页  第101页  第102页  第103页  第104页  第105页  第106页  第107页  第108页  第109页  第110页  第111页  第112页  第113页  第114页  第115页  第116页  第117页  第118页  第119页  第120页  第121页  第122页  第123页  第124页  第125页  第126页  第127页  第128页  第129页  第130页  第131页  第132页  第133页  第134页  第135页  第136页  第137页  第138页  第139页  第140页  第141页  第142页  第143页  第144页  第145页  第146页  第147页  第148页  第149页  第150页  第151页  第152页  第153页  第154页  第155页  第156页  第157页  第158页  第159页  第160页  第161页  第162页  第163页  第164页  第165页  第166页  第167页  第168页  第169页  第170页  第171页  第172页  第173页  第174页  第175页  第176页  第177页  第178页  第179页  第180页  第181页  第182页  第183页  第184页  第185页  第186页 

……

相关阅读