问题列表 - 第43965页

寻找java.util.Map的替代品

问题

关注这个问题,似乎基于文件或磁盘的Map实现可能是我在那里提到的问题的正确解决方案.精简版:

  • 现在,我已经Map实现了一个ConcurrentHashMap.
  • 条目以相当固定的速率不断添加到其中.稍后详情.
  • 最终,无论如何,这意味着JVM耗尽了堆空间.

在工作中,(强烈)建议我使用SQLite解决这个问题,但在询问上一个问题之后,我认为数据库不是这项工作的正确工具.所以 - 让我知道这听起来有多疯狂 - 我认为更好的解决方案是Map存储在磁盘上.

不好的主意:自己实现这个.更好的主意:使用别人的图书馆!哪一个?

要求

必备:

  • 自由.
  • 持久性.数据需要在JVM重启之间保持不变.
  • 某种可搜索性.是的,我需要能够检索这些数据以及将其丢弃.基本结果集过滤是一个加号.
  • 与平台无关.需要在Windows或Linux计算机上进行生产部署.
  • 可以清除.磁盘空间是有限的,就像堆空间一样.我需要摆脱n几天前的条目.如果我必须手动执行此操作,这不是什么大问题.

尼斯对富人:

  • 使用方便.如果我能在本周末完成这项工作,那就太好了.
    更好的是:一天结束.这将是非常,非常巨大的,如果我能一个JAR添加到我的类路径,改new ConcurrentHashMap<Foo, Bar>();new SomeDiskStoredMap<Foo, Bar>();
    和完成.
  • 体面的可扩展性和性能.最坏的情况:新的条目(平均)每秒增加3次,每秒,每天,每天.但是,插入并不总是顺利发生.可能就是(no inserts for an hour)这样(insert 10,000 objects at once).

可能的解决方案

java caching hadoop berkeley-db ehcache

13
推荐指数
2
解决办法
3281
查看次数

自定义错误页面中的AspxErrorPath

我们目前有一个页面,用于在我们的网站上发生错误时显示一般错误消息.除了显示提到错误的标签之外,它没有任何功能.

这是我的问题,我们的客户已运行安全审查,并告诉我们我们的错误页面包含由于查询字符串中的URL导致的网络钓鱼,现在我不认为这是一个问题,但为了结束这个问题,我' d想要删除查询字符串.

我的web.config条目是这样的:

<customErrors mode="On" defaultRedirect="~/DefaultErrorPage.aspx">
</customErrors>
Run Code Online (Sandbox Code Playgroud)

发生错误时,它会转到DefaultErrorPage.aspx?aspxerrorpath =/Website1/LastPage.aspx

我怎么能阻止这个?但是,如果它包含查询,我可以重定向到页面,但我更需要一种方法来阻止查询字符串而不是额外的重定向.

c# asp.net security error-handling redirect

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

在C++中使用Boost数组初始化

我需要声明一个boost :: array.我做了它,因为boost::array<char, 116> buf; 有可能我可以声明大小存储为从属性文件初始化的常量.就像是boost::array<char, BUFFER_SIZE> buf;

任何帮助?

c++ arrays boost

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

I/O密集型串口应用:从线程,基于队列的设计移植到异步(ala Twisted)

因此,我一直致力于通过串行(RS-232)"Master"与无线设备通信的客户端应用程序.我目前使用线程编写应用程序的核心(下面).我一直注意到#python的共识似乎是使用线程并使用Twisted的异步通信功能.

我无法找到使用twisted进行串口异步I/O通信的任何好例子.但是,我发现Dave Peticolas的''Twisted Introduction'(感谢nosklo)我目前正在使用它,但它使用套接字而不是串行通信(但异步概念肯定是非常好的解释).

我将如何使用线程,队列将此应用程序移植到Twisted?有没有任何优点/缺点(我注意到,有时,如果一个线程挂起它会BSOD系统)?

代码(msg_poller.py)

from livedatafeed import LiveDataFeed
from msg_build import build_message_to_send
from utils import get_item_from_queue
from protocol_wrapper import ProtocolWrapper, ProtocolStatus
from crc16 import *
import time
import Queue
import threading
import serial
import gc

gc.enable()
PROTOCOL_HEADER = '\x01'
PROTOCOL_FOOTER = '\x0D\x0A'
PROTOCOL_DLE = '\x90'

INITIAL_MODBUS = 0xFFFF


class Poller:
    """
    Connects to the serial port and polls nodes for data.
    Reads response from node(s) and loads that data into queue.
    Parses qdata and …
Run Code Online (Sandbox Code Playgroud)

python multithreading serial-port twisted

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

sqlcmd脚本,文件名中包含空格

我有一个简单的SQLCMD脚本,包括这样的一些行:

/* Load data into Exampletable */
BULK INSERT dbo.Example
    /* NOTE: I've tried single AND double quotes here. */
    FROM "C:\Example Filepath\test.csv"
    WITH 
    (
            /* skip the first row containing column names */
            FIRSTROW = 2,
            /* specify how fields are separated */
            FIELDTERMINATOR = '|',
            /* specify how lines end */
            ROWTERMINATOR = '\n' 
    )
Run Code Online (Sandbox Code Playgroud)

当我在命令行上运行它时,我收到如下错误:

Sqlcmd: 'C:\Example': Invalid filename.

我认为在路径中有一个空格会导致路径被切断,但我无法找出有效的语法.有没有人有这方面的经验?

sql sql-server csv bulkinsert sqlcmd

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

有没有办法设置一个最小的rubygems镜像(只有最后版本)

我想为工作中的某些服务器构建一个rubygems镜像(无法访问Internet),所以我开始像每个人似乎都这样做:

 $ cat gemmirror.config 
 ---
 - from: http://gems.rubyforge.org
 to: /data/rubygems/mirror

 $ gem mirror --config-file=gemmirror.config
Run Code Online (Sandbox Code Playgroud)

镜子开始同步很好.好.但是等等,它会下载http://gems.rubyforge.org的全部内容!我的意思是每个宝石的所有现有版本.哇.几个小时后,我仍在下载以字母"L"开头的宝石......

更不用说镜子要占用的磁盘空间了.

现在我的问题是:有没有办法设置一个"迷你"rubygems服务器,如CPAN :: Mini允许Perl:这样的镜像只包含每个宝石的最新版本.我想这是人们想要的99.9%的情况(至少对我来说这对我来说是非常好的).

我搜索了很多,遗憾的是,我找不到任何参考.

如果有人能指出我这样做的方式,我会非常感激.

谢谢!

ruby rubygems mirror

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

如何在UITableViewCell上检测"长按"手势

在我的应用程序中,我正在显示一个包含不同元素的表,如果用户点击tableviewcell,则会将详细视图推送到导航堆栈.我现在想要在桌面单元上为用户提供"长按"的能力,以便弹出警报视图,向用户显示可以应用于所述tableviewcell的不同选项(向朋友发送电子邮件信息,打印出来,添加到书签)等等)

如何在UITableViewCell上实现"长按"手势识别器?

谢谢你的帮助

iphone uitableview uigesturerecognizer

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

while(i <= sqrt(static_cast <double>(n))

在"没有恐惧的C++:让你感觉聪明的初学者指南"一书中,在第(2)章:决策,决定中,您可以看到这段代码作为素数程序的一部分:

while (i<=sqrt(static_cast<double>(n))
Run Code Online (Sandbox Code Playgroud)

假设"i"被初始化为"2",并且"n"是用户的输入.

为什么我们要比较"n"的"sqrt"而不是"n"呢?

谢谢.

c++ primes sqrt

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

如何显示"打开方式"文件对话框?

有没有简单的方法来打开"打开方式"文件对话框?

c#

15
推荐指数
2
解决办法
6829
查看次数

从日期减去若干年

假设我有代码:date('Y')."-".date('m')."-".date('d')从代码片段发布之日起,我将如何删除多年?

php date

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