夕阳武士

2006年6月28日 #

同时对多个文件进行大量写操作对性能优化

我自己的一个项目,需要同时对65536个文件进行多次写操作。

如果先全部打开所有的文件,然后重复写,最后关闭所有的文件。那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了。没有继续测试了。

            for (int i = 0; i < 65536; i++)
            {
                fileStream[i] 
= new FileStream(buffDir+"\\"+ i.ToString() + ".dat", FileMode.Create,FileAccess.Write, FileShare.Write,14000);
            }
             write;
                write;
                write;
                ........
               for (int i = 0; i < 65536; i++)
            {
                fileStream[i] .close()
;
            }




如果在写操作的时候只打开相应的一个文件,写完关闭。那么所有写操作完成只要2分30秒左右。

循环

   for (int i=0;i<65536;i++)
{
  open;
  write;
  close;
}



由此可见,第二种办法性能要远大于第一种。一次打开所有的文件,需要占用不小的内存,最主要的是.net在处理filestream 的时候,可能要进行大量的内存分配和回收等工作,消耗了大量内存和资源。

另外我也做个测试,如果文件数目比较小,那么第一种的性能又要大大好于第二种。

posted @ 2006-06-28 08:33 夕阳武士 阅读(1598) 评论(26) 编辑

2006年6月27日 #

免费发放百度指数邀请,只需做好我的网站友情链接即可。

要求你的网站的pr>=4以上,或者你的网站pr<4,但是有多个网站,也可以考虑,需要先做好我的几个网站的友情链接。请先把你的网址发邮件到bdzs@m165.com

如果你的网站符合我的要求,我会给你发我自己几个网站的链接代码,请加到你的首页链接。本人的百度指数id也是当初花了一百多元买来的,好不容易生蛋了,免费给你,也请你做人要厚道,一旦获得百度指数邀请码以后,请不要过河拆桥,又把我的网站链接给删除了。请牢记八荣八耻相关内容:以诚实守信为荣、以见利忘义为耻!

似乎有不少人完全免费发放邀请,但是大家往往得不到,这种事情可遇不可求。当初gmail发邀请的时候,又有几个人最先获得了?至少我自己等了两年才得到一个。何况百度指数对于相关人员来说,作用要大得多,但是它的邀请又更难得到。所以,我的这些小小的条件,应该不过分吧?


1. 什么是百度指数?
2. 如何注册百度指数?
3. 什么是邀请注册序列码?
4. 什么是榜单?
5. 什么是同义词?
6. 百度指数是如何计算的?
7. 后台是如何监测一个关键词?
8. 如何设置提醒?
9. 如何查看曲线图?
10.如何比较榜单关键词变化趋势?


1. 什么是百度指数?
百度指数是用以反映关键词在过去30天内的网络曝光率及用户关注度! 它能形象地反映该关键词的每天的变化趋势!

2. 如何注册百度指数?
百度指数系统的注册必须通过邀请来进行。即你必须通过一个已经在使用百度指数系统的朋友邀请你,你才有机会注册使用百度指数。

3. 什么是邀请注册序列码?
邀请注册序列码就是你的朋友邀请你注册百度指数系统时系统发送给你的随机的字符串。你在注册的时候只有正确填写了邀请注册序列码才能完成注册。

4. 什么是榜单?
榜单就是你要监测的一组关键词的集合。在这组关键词中,你可以输入不大于100个关键词来监测。其中每个关键词还可以配置10个以内的同义词。

5. 什么是同义词?
在录入榜单监测词表的时候,有的词有在搜索的时候有同意词,如百度,那么baidu就是他的同义词,百度搜索引擎也是它的同义词,如果输 入了同义词,搜索量和新闻数量会自动归并在一起计算。

6.百度指数是如何计算的?
百度指数是综合反映该关键词在过去1天用户对它的关注和媒体对他的关注的一个参考值。 任意关键词的百度指数都是该关键词在比较期的数值/该关键词在基期的数值. 比较期的数值和基期的数值是通过当天的用户搜索量和百度新闻中过去30天相关的新闻数量相比得来。

7.网络曝光度,用户关注度是指什么?

用户关注度反映的是百度数千万用户的关注,是来自对百度每天1亿多次搜索请求的分析获得的。
网络曝光度指在线媒体对关注,通过过去30天百度新闻中与该关键词相关的新闻的数量来计算获得。

8. 后台如何监测一个关键词?
如果你建立了榜单,直接输入要监测的关键词,监测过程由系统自动完成,并计算出结果反馈给你。结果以数据柱形图、描述和最近30天变化曲线三种形式展现。

9.如何设置提醒?
你登录以后,会在顶部导航栏看到提醒设置,在这里可以开启或关闭整个榜单的提醒,或按照自己的需求配置提醒。也可以通过添加关键词来配置关键词的提醒。

10. 如何查看曲线图?
登录以后,会在查阅榜单监测结果列表那里看到每个关键词后面的查看链接,点此打开新窗口,即可查阅该关键词的监测结果曲线图,图表的右侧是该关键词今日百度指数,网络曝光度,用户关注度的具体值和与昨日变化比率及柱形图。

点击图表上方的关键词提醒设置可以针对该关键词设置提醒,如果该关键词监测的参数达到你的变化要求即可提醒你。点击榜单关键词比较可以比较该关键词与别的关键词的百度指数变化曲线。

11. 如何比较榜单关键词变化趋势?
榜单关键词比较是指同一榜单的关键词中任意两个的百度指数变化曲线的比较。注意比较的关键词必须是在同一榜单内。在我的指数页面或在关键词曲线图液面都能看到与其它关键词比较的功能。

欲知更多详情,请欣赏百度指数演示动画

posted @ 2006-06-27 12:59 夕阳武士 阅读(585) 评论(10) 编辑

2006年6月22日 #

刚装好的64位服务器发生一个严重问题

今天用远程桌面登录我的托管服务器。运行了sql server等不少程序。(习惯在服务器上做工作,速度快)

后来运行了regedit ,正在查找一个字符串。

我准备用任务管理器看看当前的任务,于是在cmd窗口下输入taskmgr

这下问题来了,服务器无法操作了,鼠标是等待状态。

断开,重新登录,部分窗口黑屏,还是无法操作。

用远程终端登录,(另一管理员用户)可以登录,然后用任务管理器杀刚才用户的进程,无法杀死。

用Taskkill命令,也无法杀死!

我想用重新启动来看看,很快断开了。

严重的问题出现了,服务器根本没有重启,但是也不能登录了!

ping一直能ping通,ftp、iis等都正常。

只能打电话叫机房帮我重启。等了半个小时,还没有重启。估计是技术员看我的机器能ping,以为没有问题吧,再打一次,终于重启了,好了。

还是不知道什么原因!不敢测试了。我自己没有用64位系统,没有环境做测试。

posted @ 2006-06-22 20:03 夕阳武士 阅读(310) 评论(2) 编辑

windows server 2003 r2 64位web服务器安装配置注意事项

昨天特意去机房安装64位系统,带了一个250G新硬盘去。为了减少断网的时间,首先把硬盘分好区,把许多数据也拷到一个分区里。

我用的是windows server 2003 r2英文大客户版,外加简体中文包。总共3个碟。实际上我只刻了2个CD碟,其它的都放到一张DVD里面了。cd碟太小了。

安装开始和32位的几乎是一样。但是在选择硬盘和分区里,竟然不认识以前的分区,64位系统在安装的时候不认32位系统的分区。

其它和32位的系统几乎是一样的。安装以后是全英文的系统。再安装语言包,设置区域属性,就变成中文的了。

关于这个简体中文版的64位系统,好像就是这样的安装方法,没有专门的简体中文版的,好像都是英文系统+语言包的形式。微软发布64位系统的时候,也只提到了为中国用户提供了中文语言包。

网上基本上也是英文大客户版。



装完这些以后,缺省是不带iis的,需要在控制面板添加/删除程序中增加组件。

装好iis以后,还需要.net 2.0包,注意要装64位版本的。同时也为了能在服务器上直接调试,干脆把visual studio 2005也装上。visual studio 2005没有特别的64位版本,它在64位系统下安装时,能自动识别和安装相应的内容。下面是界面。



到这一步就装好了.net 2.0框架组件。在iis中需要做相关设置。

然后在iis中添加网站,和32位系统下完全一样。但是我昨天却出了问题,浪费我半个小时。主要是我以前用32位系统的时候保存过相关的配置文件,我用配置文件里面的配置来添加网站,这样添加的网站可能某些配置并不兼容64位,我有一个网站就是不能运行,而且显示的是找不到服务器或者dns错误,让人十分费解。所以建议手动添加网站,反正效率差不多。

最后安装64位的sql server 2005,安装以后,可以直接附加sql server 2005 32位下创建的数据库文件。附加的时候会出现孤立用户,可以用下面的语句把孤立用户和数据库用户做关联:
sp_change_users_login 'update_one', 'test', 'test' 这样,就将服务器登录“test” 与Northwind 数据库用户“test”重新连接起来。

有了64位操作系统、64位iis 、64位.net 2.0、64位sql server 2005,这样,我们的64位web服务器就这样配置完成了。

至于性能到底如何,暂时无从比较,感觉快了些。有时间我会做一些测试。

总而言之,既然硬件配置已经达到64位,主要软件都有64位了,我们没有理由不用64位。

posted @ 2006-06-22 15:52 夕阳武士 阅读(3122) 评论(8) 编辑

64位系统下动网论坛数据库连接的问题


最近刚刚安装了windows server 2003 r2 64位系统,并且安装了sql server 2005 64位版本。别的网站基本上不用改什么就可以直接运行。但是动网论坛却一直报错:




修改conn.asp文件,打印错误出来
Sub ConnectionDatabase
    Dim ConnStr
    If IsSqlDataBase = 1 Then
        ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
    Else
        ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & db)
    End If
    On Error Resume Next
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open ConnStr
    If Err Then
           Response.Write err.description
        err.Clear
        Set Conn = Nothing
        Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
        err.Clear
        Response.End
    End If
End Sub

运行结果报错内容:未指定提供程序,也没有指派的默认提供程序。数据库连接出错,请检查连接字串。



看来这个连接串有问题,和64位系统无法兼容。但是我的asp.net程序都正常,和数据库连接正常。查找我的.net程序中连接串如下:
"Server=?????;Database=???;Uid=???;pwd=????;"

于是修改动网论坛conn.asp文件:
Sub ConnectionDatabase
 Dim ConnStr
 If IsSqlDataBase = 1 Then
     ConnStr = "PROVIDER=SQLOLEDB;DATA SOURCE="&SqlLocalName&";UID="&SqlUsername&";PWD="&SqlPassword&";DATABASE="&SqlDatabaseName
 Else
  ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & db)
 End If
 On Error Resume Next
 Set conn = Server.CreateObject("ADODB.Connection")
 conn.open ConnStr
 If Err Then
  err.Clear
  Set Conn = Nothing
  Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
  err.Clear
  Response.End
 End If
End Sub

修改后运行正常:

posted @ 2006-06-22 13:24 夕阳武士 阅读(1210) 评论(2) 编辑

仅列出标题  

导航

统计信息

News