草庐IT

dotnet缓存

全部标签

.net - LRU 文件缓存和在 Windows 目录中查找文件的成本

我有一个应用程序可以下载和缓存至少250,000个8KB*文件,总计约2GB。更新此缓存时,我需要删除最近最少使用的文件。*这些小文件跨越两个4KB扇区。为NTFS格式的5400RPM驱动器上的目录中的此类文件按名称获取文件句柄的相对成本是多少?如果我将所有200K文件存储在一个目录中,仅仅获取一个文件句柄会花费超过几毫秒的时间吗?我可以轻松地将文件存储到不同的目录中。Windows7默认禁用文件的最后访问时间,我不想要求管理员启用此功能。我是否应该在内存中维护一个单独的文件访问时间列表(应用程序退出时序列化到磁盘?)我是否应该考虑将这些文件存储在一个大的平面文件中?如果我使用.NET

windows - 如何从 SxS 缓存中删除未卸载的 DLL

我有VS2008。我升级到VS2010,然后卸载了VS2008。我有一个在我的机器上运行的测试,但无法在构建实验室的机器上加载。经过一些调试后,我意识到测试可执行文件仍然依赖于msvcr90d.dll(这是一个VC++2008调试运行时库)。即使我已经卸载了VS2008,该测试在我的机器上仍然有效,因为该运行时DLL仍然存在于并行缓存(%windir%/winsxs)中。构建实验室机器没有DLL,因此不会在那里加载。卸载VS2008不应该导致其所有运行时DLL从并排缓存中删除吗?有没有办法可以从并行缓存中手动删除这些旧的DLL?我希望能够轻松检测到我可能仍然有过时依赖项的其他地方。

c# - 删除 WCFTestClient 的缓存 - 适用于 Visual Studio 2010

我们正在通过VisualStudio2010创建WCF服务(.NET3.5)。当我更改.svc.cs文件时,保存、清理、重建并复制到GAC(使用WSPBuilder,它回收各种IIS进程)我仍然得到缓存数据。只有一些激烈的事情,比如checkin我的所有文件和运行门控checkin构建,或者重新启动计算机清除这个“缓存”。这样做的结果是开发->测试周期极其缓慢。但它不必如此!这是我的问题。VS2010或Windows为WCFTestClient保留的缓存在哪里?我可以添加调试断点并且符号会显示在调试中(这意味着在某种程度上我正在使用新的程序集)但是像watch这样的关键东西会显示旧的、

windows - 在本地计算机上设置 AppFabric 缓存服务器 1.1 时出错

我正在尝试在我的本地计算机上设置WindowsServerAppFabric缓存。最终,当我将我的C#.NET应用程序连接到分布式缓存时,我得到了一个错误。为了确认缓存已启动并运行并正确配置,我执行了PowerShell中的“Get-CacheClusterHealth”。当我这样做时,出现以下错误:Get-CacheClusterHealth:ErrorCode:SubStatus:FailedtoconnecttohostsintheclusterAtline:1char:23+Get-CacheClusterHealth我在连接到域的工作计算机上安装AppFrabicCache。

windows - 从 Windows 批处理脚本自动缓存 git 凭据?

这是我第一个合适的Windows批处理脚本;所以请善待:set/pGIT_CACHE="Cachegitcredentials?:"%=%if/i{%GIT_CACHE%}=={y}(goto:cache)if/i{%GIT_CACHE%}=={yes}(goto:cache)if/i{%GIT_CACHE%}=={[yes]}(goto:cache)goto:skip_cache:cachefor%%Xin(git-credential-winstore.exe)do(setFOUND2=%%~$PATH:X)ifNOTDEFINEDFOUND2(curl-ogit-credenti

windows - Cygwin 64 位 C 编译器缓存有趣(并且提前结束)

我们一直在使用CygWin(/usr/bin/x86_64-w64-mingw32-gcc)来生成Windows64位可执行文件,昨天它一直运行良好。今天它以一种奇怪的方式停止工作——它“缓存”标准输出直到程序结束。我写了一个六行的例子那做了同样的事情。由于我们批量使用代码,所以我不会担心,除非我在现在奇怪地缓存的可执行文件上运行测试用例,它会打开输出文件,提前结束,并且不会用数据填充它们。(相同的代码在Linux上运行良好,但这些人使用的是Windows。)我知道这不是华丽的代码,但它证明了我的问题,仅在之后打印数字“12345678910”我按下了键。#includemain(){

windows - 如何在 Windows 上获取 cpu 缓存关联设置

如何获取有关L1、L2和L3关联性设置的信息?我可以得到大小但不能得到结合性,知道吗?到目前为止我还没有找到任何有用的东西 最佳答案 x86CPUIDinstruction不需要任何权限,因此您可以在任何操作系统的程序中运行它。它在叶2(eax=2)中具有缓存关联性信息。另见x86标记wiki以获取更多文档链接。不过,它仅适用于x86,因此如果您关心非x86上的Windows的可移植性,则必须为其他架构寻找其他东西。如果您不想通过编写解码函数和asm函数或内联asm重新发明轮子来首先运行CPUID,则可以使用库来解码此CPUID信息

c# - 是否有适用于 Windows 的具有高可用性选项的可查询分布式缓存?

我们正在尝试将某种分布式缓存集成到我们的系统中。我们有两个主要要求:高可用性,即自动将数据复制到镜像机器上,这样即使一台机器出现故障,数据仍然可用。缓存数据的可搜索性/质量,即需要进行范围搜索。可选:返回存储数据的完整快照。可选:能够定期保存缓存数据。到目前为止,我们只有SharedCache作为候选,因为它至少允许使用正则表达式进行搜索。虽然这本质上很慢。SharedCache不支持高可用性。WindowsAppFabric提供了这个功能,但据我所知没有搜索功能(如果我错了那真是太棒了)。我有哪些选择?那是过分的要求?我应该放弃并考虑某种定制解决方案吗?

c++ - FindFirstFile/FindNextFile API 对缓存结果是否返回?

我不确定是否有人问过这个问题,我好像找不到。当我进行文件夹内容枚举时,您知道通常的情况:FindFirstFile();do{}while(FindNextFile());如果当我还在我的do/while循环中时,文件夹的内容发生了变化,会发生什么?比如说,添加、更改或删除了一个新文件或文件夹。这是否反射(reflect)在FindNextFile返回的结果中? 最佳答案 快速测试用例表明,FindFirstFile不会将结果缓存在Windows7上运行的本地文件系统上。但是一旦调用FindNext,结果就会被缓存(不完全,只有一点

Windows Server AppFabric 缓存 session 存储

WindowsServerAppFabric缓存能否在2个或更多不同的Web应用程序之间共享一个session?我该怎么做? 最佳答案 是的,你可以做到这一点。您需要配置session提供程序以使用缓存服务(他们有专门为此提供的提供程序)。查看http://msdn.microsoft.com/en-us/library/ee790859.aspx 关于WindowsServerAppFabric缓存session存储,我们在StackOverflow上找到一个类似的问题: