标签: persistent

Java:大型持久哈希结构?

我在java中寻找一个持久的哈希结构,一个简单的键值存储,其中key是唯一的字符串,值是int.每次将现有密钥添加到商店时,密钥的值都会递增.

我需要这个很大 - 可能是500m - 10n键.我一直在评估tokyo-cabinet http://fallabs.com/tokyocabinet/javadoc/但不确定它的扩展程度 - 随着哈希的增长,插入时间似乎越来越长.

关于什么可能合适的任何想法?

谢谢

编辑:为了减少磁盘I/O,我将在内存中的HashMap中缓存数据,然后在缓存增长到一定大小时一次性更新持久性哈希.

编辑2:持久性的原因之一是我有限制的RAM,4GB,所以我无法在内存中加入大量的结构.

java hash persistent

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

应用重启后,共享首选项不会持久

我在这里找到了所有答案并尝试了所有解决方案,但我的共享首选项仍然没有持久性.

这是我的代码:

public static void setActivated(boolean activated) {
    SharedPreferences sp = Utils.getContext().getSharedPreferences(
            USER_PREFS, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit(); 
    editor.putBoolean(ASD, activated);
    editor.commit();
}

public static boolean isActivated() {
    SharedPreferences sp = Utils.getContext().getSharedPreferences(USER_PREFS, Context.MODE_PRIVATE);
    return sp.getBoolean(ASD, true); 
}
Run Code Online (Sandbox Code Playgroud)

我也试过了:

editor.clear();
editor.put ..
editor.commit();
Run Code Online (Sandbox Code Playgroud)

我也试过了

editor.apply();
Run Code Online (Sandbox Code Playgroud)

我甚至尝试了.apply()和.commit()并没有运气.

另一个想法是尝试使用不同的模式:

...getSharedPreferences(USER_PREFS, Context.MODE_MULTI_PROCESS);
Run Code Online (Sandbox Code Playgroud)

问题是保存的值不是持久的.如果我关闭应用程序然后重新打开它,则值全部错误.

有没有人有任何想法?我还要提到问题只出现在某些设备上,例如HTC One S,三星Galaxy S3(我在不同的S3上测试过,它运行得很好).

编辑:我在按钮单击监听器上调用保存,并在加载片段时调用isActivated(在onViewCreated()之后).

谢谢!

android shared save preferences persistent

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

如何在Persistent中存储Enum ADT

如何在Persistent中存储枚举?

假设您有数据State = Ready | 尚未准备好 错误

如何将其存储在Persistent数据库中?

haskell persistent yesod

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

以持久的方式在Chrome中存储控制台日志记录

在学校项目中,我正在运行一些通过控制台窗口输入并从那里运行的javascript.此脚本操纵网页并将结果输出到控制台.

问题:以持久的方式保存/保存这些结果,这些结果不会因浏览器关闭,脚本故障/页面重新加载而消失,或者如果可能,PC崩溃.

我想过使用Log4js或jStorage(jQuery Storage)这样的框架,但由于这不是我操作的网站,我无法在页面中添加代码或标记.

有没有办法做到这一点?

注意:将结果记录到控制台并不重要,我可以将它们发送到某处或者使用它们执行其他操作,如果这样可以更容易记录.

谢谢.

javascript console logging google-chrome persistent

6
推荐指数
3
解决办法
8125
查看次数

每个HTTP请求都使用单独的TCP连接

观察结果:

  • 我的Web应用程序正在JBoss中运行。

  • 由于图像等原因,每一次用户单击都会生成> 5个HTTP请求。

  • 在服务器上运行netstat会显示为每个单个HTTP请求打开了一个新的TCP连接(基本上,我正在查看来自端口80上客户端IP的TCP连接总数)。

事实:

  • JBoss HTTP协议设置为1.1。

  • 我已经检查过FF,IE9和Chrome-所有浏览器都执行相同的操作。

  • 我有两个测试环境-一个在Windows7上运行,另一个在CentOS上运行。我在两者中看到相同的行为。

我要完成的工作

  • 持久的TCP连接,因为希望这可以a)增强用户体验,b)减少服务器上的负载

在这一点上,我不确定该问题应该附加什么代码,配置详细信息或日志,但是如果您让我知道,我会提供。任何帮助都将受到赞赏。

ps从标题来看,该线程似乎很有希望,TCP连接不会通过HttpURLConnection再次用于HTTP请求,但它主要处理客户端。

jboss tcp http persistent

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

让控制台脚本在 Google Chrome 中保持不变

我有一个想要在 Google Chrome 控制台中使用的脚本。但这个脚本将重新加载页面。有点像这样:

setInterval(function(){location.reload();},3000);
Run Code Online (Sandbox Code Playgroud)

问题是,一旦重新加载,脚本就会停止并清除控制台。我尝试了“保留导航日志”选项:它保留日志,但脚本在重新加载后不会重新启动。

我应该怎么做 ?谢谢 :)

javascript console google-chrome persistent

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

vim persistent undo无法正常工作

我试图使用vim 7.4.9持久撤消

在我的vimrc中,我有:

set undodir=/home/myname/.vim/undo//
set undofile
set undolevels=1000
set undoreload=10000
Run Code Online (Sandbox Code Playgroud)

当然/home/myname/.vim/undo目录存在.

我用vim打开了一些文件并进行了一些更改.

我在/home/myname/.vim/undo/中看到了undofiles:

$ ll /home/myname/.vim/undo/
total 23K
-rw-r--r-- 1 hpcpcollab hpcpcollab  523 18 sept. 11:23 %home%myname%foo
-rw-r--r-- 1 hpcpcollab hpcpcollab  14K 18 sept. 11:03 %home%myname%bar
-rw-r--r-- 1 hpcpcollab hpcpcollab 2,2K 18 sept. 11:52 %home%myname%test
Run Code Online (Sandbox Code Playgroud)

但是,当我关闭这些文件时,重新打开它们,并按"u"以撤消,vim回复:"已经在最早的更改".

我错过了什么?

谢谢

朱利安

vim undo persistent

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

如何在REPL中运行Yesod的DB操作?

在正常Handler工作流中很容易运行数据库操作,因为该runDB功能可用于将SqlPersistM操作转换为操作Handler.

但是没有这种方法可以SqlPersistM直接转换为IO使用默认的应用程序设置.查看Foundation.hs应用程序脚手架中定义的内容,有以下实例

instance YesodPersist App where
    type YesodPersistBackend App = SqlBackend
    runDB action = do
        master <- getYesod
        runSqlPool action $ appConnPool master
instance YesodPersistRunner App where
    getDBRunner = defaultGetDBRunner appConnPool
Run Code Online (Sandbox Code Playgroud)

它基本上runSqlPool与应用程序的配置一起使用,但我没有看到如何利用它来访问REPL中的配置表单的简单方法.

TL; DR:我正在寻找的只是能够runDB $ selectList [...] [...]在我的Yesod应用程序中从cabal repl中执行某些操作,而无需复制Yesod脚手架开箱即用的设置.

haskell persistent yesod

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

用户指定的data.table属性将被删除

我有一个函数返回一个data.table附加了各种有用的用户定义属性.但是,我注意到,当操纵data.table时,属性会消失.

library(data.table)
my_dt <- data.table(col1 = rnorm(20), col2 = letters[1:20])

# store some user attribute
attr(my_dt, 'title') <- 'This is my data.table'
# now it's there
attributes(my_dt)
# but here it's gone
attributes(my_dt[order(col1)]) 
Run Code Online (Sandbox Code Playgroud)

有没有办法让data.table'persist'的属性适用于上述情况(除了将它们存储在一个单独的对象中)?

似乎属性确实存在于常规 data.frames

my_df <- data.frame(col1 = rnorm(20), col2 = letters[1:20])

# store some user attribute
attr(my_df, 'title') <- 'This is my data.frame'
# there it is
attributes(my_df) 
# still there
attributes(my_df[order(my_df$col1), ]) 
Run Code Online (Sandbox Code Playgroud)

attributes r persistent user-defined data.table

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

使用 connect-session-sequelize 实现持久会话

我正在制作一个带有登录系统的网站,我希望用户即使在浏览器关闭后也能够保持登录状态。仅当用户注销时才销毁会话。我在网上搜索了解决方案,并发现了使用connect-session-sequelize 的建议。我阅读了文档并尽最大努力使代码正常工作,但我在这方面缺乏经验,这成为了障碍。

问题:

我的代码没有给出服务器重新启动后保持用户登录的结果。我的代码是:

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
var session = require('express-session');
var SequelizeStore = require('connect-session-sequelize')(session.Store);

var pug = require('pug');
var bodyParser = require('body-parser');
var bcrypt = require('bcrypt');

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(express.static('public'));
app.use(cookieParser());

app.set('views', './views');
app.set('view engine', 'pug');

var Sequelize = require('sequelize');
var db = new Sequelize('postgres://'+ process.env.POSTGRES_USER + ':' + 
process.env.POSTGRES_PASSWORD + '@localhost/terranova', {
    host: 'localhost',
    dialect: 'postgres',
    storage: './session.postgres', 
    define: {
      timestamps: true
    }
});

var sessionStore …
Run Code Online (Sandbox Code Playgroud)

postgresql session persistent node.js express

6
推荐指数
0
解决办法
5409
查看次数