Asp.net 带有XML数据存储的Blog Engine.NET是如何实现如此之快的?
我正在寻找一种方法将博客引擎嵌入到我自己的应用程序中,我对博客引擎算法太好奇了 这可能不是一个正确的问题,但是,在默认配置下,如何将博客条目数据存储在像BlogEngine.Net这样的XML文件中呢。当文件越来越大时,它必须每天都变慢 我想知道这背后的算法。是否以不同的方式加载?还是我的时间估计错了Asp.net 带有XML数据存储的Blog Engine.NET是如何实现如此之快的?,asp.net,xml,blogengine.net,Asp.net,Xml,Blogengine.net,我正在寻找一种方法将博客引擎嵌入到我自己的应用程序中,我对博客引擎算法太好奇了 这可能不是一个正确的问题,但是,在默认配置下,如何将博客条目数据存储在像BlogEngine.Net这样的XML文件中呢。当文件越来越大时,它必须每天都变慢 我想知道这背后的算法。是否以不同的方式加载?还是我的时间估计错了 我知道它是开源的,但我认为最好在这里看到讨论,因为其他人可能也有同样的想法,此线程可以作为参考。它在启动时将帖子加载到内存。它在启动时将帖子加载到内存。要回答您提出的XML问题,通过扩展Provi
我知道它是开源的,但我认为最好在这里看到讨论,因为其他人可能也有同样的想法,此线程可以作为参考。它在启动时将帖子加载到内存。它在启动时将帖子加载到内存。要回答您提出的XML问题,通过扩展ProviderBase类,您可以将其挂接到任何数据库,包括XML文件。有关更多信息,请参阅BlogProvider.cs类和Providers文件夹及其在BlogEngine.Core文件夹中的子文件夹XmlProvider。 如果您看到Web.Config文件,您可以看到下面的代码
<blogProvider defaultProvider="XmlBlogProvider">
<providers>
<add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
<add name="DbBlogProvider" type="BlogEngine.Core.Providers.DbBlogProvider, BlogEngine.Core" connectionStringName="BlogEngine" />
</providers>
</blogProvider>
通过将defaultProvider更改为DbBlogProvider,您可以钩住BlogEngine.NET支持的任何RDBMS。要回答您提出的XML问题,通过扩展ProviderBase类,您可以将其挂接到任何数据库,包括XML文件。有关更多信息,请参阅BlogProvider.cs类和Providers文件夹及其在BlogEngine.Core文件夹中的子文件夹XmlProvider。 如果您看到Web.Config文件,您可以看到下面的代码
<blogProvider defaultProvider="XmlBlogProvider">
<providers>
<add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
<add name="DbBlogProvider" type="BlogEngine.Core.Providers.DbBlogProvider, BlogEngine.Core" connectionStringName="BlogEngine" />
</providers>
</blogProvider>
通过将defaultProvider更改为DbBlogProvider,您可以钩住BlogEngine.NET支持的任何RDBMS
如何将博客条目数据存储在XML文件中,如
具有默认配置的BlogEngine.Net。一定是变慢了
每天当文件越来越大的时候
每个帖子都存储为一个单独的xml文件,并带有一个GUID文件名
当系统启动或循环使用时(如果30分钟不活动),系统将遍历所有xml文件并将其加载到系统内存“app_pool”中
对于第一个在“冷”启动时访问的访问者,其页面加载速度通常比之后的访问者慢
第二个访问者和其他访问者将体验比第一个访问者更快的页面加载
它之所以快,是因为它存储在内存中,不需要连接到数据库,也不需要访问数据库并返回请求的页面/帖子的往返过程
当“应用程序池”因为帖子/页面太多而开始满时,它将开始减速
这是估计约150个职位/页总数
当您总共达到151篇文章/页时,您将需要切换到使用SQL数据库或xml以外的其他提供者
如何将博客条目数据存储在XML文件中,如
具有默认配置的BlogEngine.Net。一定是变慢了
每天当文件越来越大的时候
每个帖子都存储为一个单独的xml文件,并带有一个GUID文件名
当系统启动或循环使用时(如果30分钟不活动),系统将遍历所有xml文件并将其加载到系统内存“app_pool”中
对于第一个在“冷”启动时访问的访问者,其页面加载速度通常比之后的访问者慢
第二个访问者和其他访问者将体验比第一个访问者更快的页面加载
它之所以快,是因为它存储在内存中,不需要连接到数据库,也不需要访问数据库并返回请求的页面/帖子的往返过程
当“应用程序池”因为帖子/页面太多而开始满时,它将开始减速
这是估计约150个职位/页总数
当您总共达到151篇文章/页时,您将需要切换到使用SQL数据库或xml以外的其他提供者