Asp.net mvc 枚举文件夹内容和检查每个web请求上是否存在多个文件会是一种严重的性能惩罚吗?

Asp.net mvc 枚举文件夹内容和检查每个web请求上是否存在多个文件会是一种严重的性能惩罚吗?,asp.net-mvc,performance,filesystems,Asp.net Mvc,Performance,Filesystems,作为我的web应用程序的可扩展性选项,我希望允许用户通过创建新文件夹并将文件上载到其中来向其添加节。例如,如果他们创建了(在webroot中): 然后在主菜单中会有一个新的菜单点“First”,子菜单点为“Second”,这将导致index.txt的标记解析版本。这样,用户可以上传任何他想要的静态菜单点(如“关于我们”、“联系我们”、“我们的任务”等) 另一个扩展点是,我希望他们以类似的方式向特定网页添加页眉/页脚。我使用的是ASP.NET MVC3,因此有很多漂亮的URL,用户只需创建: /U

作为我的web应用程序的可扩展性选项,我希望允许用户通过创建新文件夹并将文件上载到其中来向其添加节。例如,如果他们创建了(在webroot中):

然后在主菜单中会有一个新的菜单点“First”,子菜单点为“Second”,这将导致index.txt的标记解析版本。这样,用户可以上传任何他想要的静态菜单点(如“关于我们”、“联系我们”、“我们的任务”等)

另一个扩展点是,我希望他们以类似的方式向特定网页添加页眉/页脚。我使用的是ASP.NET MVC3,因此有很多漂亮的URL,用户只需创建:

/UserContent/Additions/Store/Categories/35/header.txt
当有人打开
www.mydomain.com/Store/Categories/35
时,会预先添加标记解析的header.txt

这对用户来说很简单,对我来说也很简单(我不需要制作复杂的管理面板和所见即所得编辑器)

然而,我担心的性能。这个方案意味着在每次GET请求时,我都需要扫描
/UserContent/StaticPages
文件夹并检查页眉/页脚文件的存在性(几个,因为父级也可以有它们的header.txt/footer.txt)


我可以缓存结果,但接下来我必须管理缓存,用户需要知道更改可能需要X分钟才能显示。这会是一个过早的优化吗?这些文件夹中不会有太多数据,因此Windows可能能够轻松缓存其内容本身。

您应该进行一些测量,看看性能是否变得太差

根据我的经验,你现在不应该太努力地使一切尽可能快(也就是说,如果你还不知道这是值得的,就不要浪费太多时间)。但是,选择一种或多或少不会妨碍以后这样做的方式。例如,不要在你的代码中使用文件实例,因为如果你不得不改变方法,这意味着你以后要做很多工作。找到一些您担心具体方法的精简抽象


尝试分析一些具有预期使用量的典型用例(负载测试),您可能很快就会知道是否需要优化以及需要优化什么。

谢谢!我忘记了这种方法
/UserContent/Additions/Store/Categories/35/header.txt