问题列表 - 第3662页

c#的磁盘支持字典/缓存

我正在寻找一种用于缓存大量数据的解决方案.

相关问题,但针对不同语言:

关于不同术语的问题:

我不需要(或者想要支付任何费用)持久性,事务,线程安全等,并且想要使用比List <>或Dictionary <>更复杂的东西.

如果我必须编写代码,我将把所有内容保存为临时目录中的文件:

string Get(int i)
{
   File.ReadAllText(Path.Combine(root,i.ToString());
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,索引将是一个int(并且它们应该是连续的或足够接近的)并且数据将是一个string所以我可以放弃对待两个POD并且宁愿超光并且做到这一点.

用法是我有一系列3k文件(如文件#1到#3000),总计650MB,需要为序列中的每一步做差异.我希望总数大约相同或更多,我不想将所有内容保留在内存中(更大的情况可能会出现在我无法实现的地方).


很多人为我的问题提出了不同的解决方案.然而似乎没有人针对我的小利基.我正在考虑磁盘备份缓存的原因是因为我预计我当前的使用将耗尽我可用地址空间的1/3到1/2.我担心较大的案件会耗尽空间.我并不担心踩踏,持久或复制.我正在寻找的是使用最少代码,最小使用占用空间,最小内存开销和最小复杂性的最小解决方案.

我开始认为我过于乐观了.

c# caching disk-based

11
推荐指数
2
解决办法
2万
查看次数

在PHP中测试404的URL的简便方法?

我正在教自己一些基本的刮擦,我发现有时我输入到我的代码中的URL返回404,这会使我的所有其余代码变得粗糙.

所以我需要在代码顶部进行测试,以检查URL是否返回404.

这似乎是一项相当直接的任务,但谷歌没有给我任何答案.我担心我在寻找错误的东西.

一篇博客推荐我用这个:

$valid = @fsockopen($url, 80, $errno, $errstr, 30);
Run Code Online (Sandbox Code Playgroud)

然后测试以查看$ valid是否为空.

但我认为给我问题的URL有一个重定向,所以$ valid对所有值都是空的.或许我做错了什么.

我也查看了"头部请求",但我还没有找到任何可以使用或尝试的实际代码示例.

建议?这是关于卷曲的?

php validation http http-headers http-status-code-404

147
推荐指数
9
解决办法
22万
查看次数

Silverlight 2:Text Glow效果?

我想在Silverlight中的文本块上创建外部发光(或光晕)效果.

(对于PS3用户,类似于该系统上菜单文本周围的光晕).

我似乎是在其他形状上做内外发光的样本,例如矩形,但这并不能转化为文本.

只是想知道是否有人指点帮助我.

silverlight graphics

6
推荐指数
1
解决办法
3150
查看次数

为什么显式接口实现?

我最近实现了一个类:

class TestClass : IDisposable
{
    RegistryKey m_key;
    public TestClass()
    {
        m_key = Registry.CurrentUser.OpenSubKey("Software", false);
    }

    public void Dispose()
    {
        // m_key.Dispose();
        IDisposable disp = m_key;
        disp.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释直接调用Dispose,我会收到错误CS0117("'Microsoft.Win32.RegistryKey'不包含'Dispose'的定义").一些谷歌搜索引导我到这个线程,在那里我了解了发生了什么,所以我现在了解它的机制.在MSDN文档表明,笔者更希望我调用close()代替Dispose()方法,但没有解释原因.

这种模式的目的是什么(我认为我在IO类中也看到了它)?鉴于这是班级作者的故意决定,上面的代码有多糟糕(通过IDisposable接口调用Dispose)?它不会太糟糕 - 毕竟,这是在使用声明中会发生什么,对吧?

[编辑:1]将标题从"非公开"更改为"显式"2)从我的代码中删除了显式实现,意外地从实验中留下了]

c# interface

9
推荐指数
1
解决办法
6575
查看次数

SSL客户端如何验证服务器的证书?

我正在构建一个应用程序,我计划使用OpenSSL来保护数据传输.

我打算只让客户验证服务器的证书.我对如何保护服务器的证书感到困惑.我想加密包含私钥的服务器证书,但我不想使用任何硬编码密钥进行此加密.

使用SSL的应用程序遵循哪些常见做法?

security ssl openssl cryptography ssl-certificate

1
推荐指数
1
解决办法
1万
查看次数

为什么Enumerable.Range比直接yield循环更快?

下面的代码是检查执行相同解决方案的三种不同方式的性能.

    public static void Main(string[] args)
    {
        // for loop
        {
            Stopwatch sw = Stopwatch.StartNew();

            int accumulator = 0;
            for (int i = 1; i <= 100000000; ++i)
            {
                accumulator += i;
            }

            sw.Stop();

            Console.WriteLine("time = {0}; result = {1}", sw.ElapsedMilliseconds, accumulator);
        }

        //Enumerable.Range
        {
            Stopwatch sw = Stopwatch.StartNew();

            var ret = Enumerable.Range(1, 100000000).Aggregate(0, (accumulator, n) => accumulator + n);

            sw.Stop();
            Console.WriteLine("time = {0}; result = {1}", sw.ElapsedMilliseconds, ret);
        }

        //self-made IEnumerable<int>
        {
            Stopwatch sw = Stopwatch.StartNew();

            var ret = …
Run Code Online (Sandbox Code Playgroud)

c# performance ienumerable range enumerable

11
推荐指数
2
解决办法
6503
查看次数

三次贝塞尔曲线描边的概述

通过三次贝塞尔曲线的笔划,我的意思是渲染具有特定线宽'w'的曲线'A'.

如何推导出描述贝塞尔"A"笔划轮廓的其他三次贝塞尔曲线?

math bezier

14
推荐指数
1
解决办法
8394
查看次数

将索引添加到MySQL表

MySQL文档对此并不十分清楚.我想为现有表添加索引.该表是一个带有登录ID和密码的用户表,我想为此创建一个索引来优化登录.

这就是我以为我会尝试的方式:

mysql> ALTER TABLE `users` ADD INDEX(`name`,`password`);
Run Code Online (Sandbox Code Playgroud)

这创造了:

mysql> show index from karmerd.users;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+   
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |    
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+    
| users |          0 | PRIMARY  |            1 | id          | A         |           2 |     NULL | NULL   |      | BTREE      |         |     
| users |          1 | name     |            1 | name        | A         |           2 |     NULL …
Run Code Online (Sandbox Code Playgroud)

mysql indexing

1
推荐指数
1
解决办法
2874
查看次数

Microsoft异常处理块 - 它不是过度工程的完美示例吗?

自从微软推出应用程序块以来,我一直在碰到使用异常处理应用程序块的人.我最近对自己进行了仔细研究,并总结了如下基本功能(如果您已经知道它的作用,请跳过以下块):

异常处理应用程序块旨在集中并使配置文件完全配置以下关键异常处理任务:

  • 记录异常
  • 替换例外
  • 包装例外
  • 传播例外
  • 等等

该库通过修改try catch块来实现,如下所示:

try
{
  // Run code.
}
catch(DataAccessException ex)
{
    bool rethrow = ExceptionPolicy.HandleException(ex, "Data Access Policy");
    if (rethrow)
    {
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

根据app.config中为策略名称指定的内容(请参阅此处的文档),HandleException将...

  • 抛出一个全新的异常(替换原来的异常)
  • 将原始异常包装在一个新异常中并抛出它
  • 吞下异常(即什么都不做)
  • 你有没有重新抛出原来的例外

此外,您还可以将其配置为预先执行更多操作(例如,记录异常).

现在这是我的问题:我完全没有看到如何替换,包装,吞下或重新抛出异常使其可配置是多么有益.根据我的经验,这个决定必须在您编写代码时做出,因为在更改异常处理行为时,您通常必须更改周围或调用代码.

例如,当您重新配置时,您的代码可能会开始行为不正确,以至于现在吞下特定点抛出的特定异常而不是重新抛出(可能在发生异常时不能执行catch块之后的代码).对于异常处理中的所有其他可能的更改也是如此(例如,替换 - >重新抛出,吞下 - >换行).

所以,对我来说,底线是异常处理块解决了实际上根本不存在的问题.异常记录和通知位很好,但是并非所有其他东西都只是过度工程的完美示例吗?

.net enterprise-library exception-handling application-blocks

19
推荐指数
2
解决办法
4678
查看次数

有谁知道一个像样的免费DB架构逆向工程工具?

寻找一种工具,它将从实时数据库中自动创建MySQL数据库模式的图形表示,显示表,列和关系(ER图).理想情况下,在OS X上运行的东西会很棒,但是如果需要的话,我会把我能得到的东西运行在不同的机器上.

我检查了Google和del.icio.us. 似乎大多数这样做的产品都是商业性的.我猜他们开发费用很高?

MySQL有Workbench,但逆向工程功能需要额外的费用.

这个开源工具SchemaSpy看起来很有前途,但安装和使用可能有点尴尬.在我深入研究之前,我想我会检查是否有人知道更多的"即时满足".

mysql database schema reverse-engineering

7
推荐指数
1
解决办法
1万
查看次数