Bitrac 一直以来都有一个很头疼的问题,就是执行时间竟然有 300 多毫秒,虽然感官上速度并不是很明显的慢,但是看到 300 毫秒的时间还是让我这个开发者头疼,以前写 L-BLOG 执行时间也才是 100 毫秒左右而已,.NET 不会比 ASP 速度更慢的,因为以前写 Geekera 的时候执行时间只有 30 毫秒而已。用 JetBrains dotTrace 跟踪了一下程序的执行发现 URLRewrite 和 模板引擎的正则速度超级慢,一直以来也没想出哪里出了问题。今天试着把正则的 RegexOptions.Compiled 选项去掉以后,发现正则的速度提高了好多好多,上 MSDN 看了下 RegexOptions.Compiled 的选项意思,写的也很明白:指定将正则表达式编译为程序集。这会产生更快的执行速度,但会增加启动时间。但是具体啥意思还真没弄明白,后来用 Google 搜索了一下,看到一篇文章:http://blog.livid.cn/zackzhu/200711/thinking/17_395.html 终于弄明白了这个选项的具体意思。

Bitrac 现在最头疼的问题已经解决了,心情那个舒服啊。另外还有一个小问题就是有时候第一次启动会报错误,看错误日志是个数据库文件 IO 方面的错误,估计跟数据库文件的锁定有关系,有机会查查资料,看到底是什么问题。这个问题出现后,一般刷新一下就可以了……真奇怪。

如果你遇到同样的问题,希望这篇文章能带给你些许帮助,如果你有更好的方法或者解释,希望留言告诉我。

本日志由 Loveyuki 于 2008-03-13 22:59 发表,目前已经被浏览 3722 次,评论 29 次;

作者添加了以下标签: .NET 2.0正则表达式效率优化

引用通告:http://blog.loveyuki.com/Article/56/Trackback.ashx

评论订阅:http://blog.loveyuki.com/Article/56/Feeds.ashx

评论列表

  1. 2008-03-18 00:33 | # | 回复
    中午在客户那里安装了一个SQL2005,找不到企业管理器,所以想求助一下。感谢了。已经找到解决方法了。下载一个XXX软件就可以了。
  2. Gravatar
    xingel
    2008-03-20 19:49 | # | 回复
    loveyuki,发份这个清淡的皮肤过来,挺喜欢xingel@yeah.net
    谢谢
  3. 2009-03-05 02:41 | # | 回复
    刚刚装了下你的Blog感觉非常棒,在本机的时候按说明只简单设置了下,几分钟就成功了,好高兴!可是放在服务器上就出错了,郁闷?这是为什么呢?
    网址是:http://www.chenlianfu.com/
    提示:Server Error in '/' Application.
    -------------------------
    Could not load file or assembly 'Bitrac.Data' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.BadImageFormatException: Could not load file or assembly 'Bitrac.Data' or one of its dependencies. An attempt was made to load a program with an incorrect format.......
    感谢知情者回复。。。。
  4. Gravatar
    Loveyuki
    2009-03-05 07:58 | # | 回复
    服务器的 .NET 环境设置为 2.0 了吗?
  5. 2009-03-05 09:49 | # | 回复
    是的,服务器上是。NET2.0的
  6. 2009-03-05 09:51 | # | 回复
    还有,这句是不是要修改成自己的配置?
    <add name="SQLite" connectionString="Data Source=|DataDirectory|BitracDB.db3;Pooling=True" />
  7. 2009-03-05 10:08 | # | 回复
    服务器是64位的、OS是WinServer2003、.NET是2.0、IIS6.0。
  8. 2009-03-05 10:12 | # | 回复
    用SQLiteSpy查看数据库也正常,就是这个Blog运行不起来,请Loveyuki帮帮忙看看是什么原因呢?谢谢!(昨天晚上找了好多个博客程序,最后,我很看好、看满意你的博客,所以很想用起来。)
  9. Gravatar
    Loveyuki
    2009-03-05 11:01 | # | 回复
    嗯,是 64 位的原因。建议你把 IIS 设置为 32 位模式。毕竟 2003 的 IIS 在 64 位下也有一些 BUG。
292/2
(必填)
(必填,不会被公开)