小编Ale*_*ait的帖子

在会话中加载实体后,Hibernate查询会大幅减慢

我正在使用Hibernate EntityManager,并且在我的Hibernate查询中遇到了奇怪的减速.看看这段代码:

public void testQuerySpeed() {
    for(int i = 0; i < 1000; i++) {
        em.createNativeQuery("SELECT 1").getResultList();
    }
}
Run Code Online (Sandbox Code Playgroud)

这在我的机器上运行大约750毫秒.考虑到它只是选择一个恒定的整数,但不是很快,但可以接受.在我启动查询之前,我的问题出现在我的EntityManager会话中加载了任何实体:

public void testQuerySpeed() {
    CommercialContact contact = em.find(CommercialContact.class, 1890871l);

    for(int i = 0; i < 1000; i++) {
        em.createNativeQuery("SELECT 1").getSingleResult();
    }
}
Run Code Online (Sandbox Code Playgroud)

em.find()很快,但运行时1000查询增加了十倍以上,大约10秒.如果我把它放在em.clear()后面em.find(),问题就会再次消失,运行时间会回到750ms.

我在这里使用了本机查询,但HQL查询也存在问题.当实体在EntityManager会话中时,似乎所有查询至少需要70ms.

在生成需要n + 1个查询的列表时,这种性能下降确实在伤害我们.

我已经测试了最新的Hibernate 3.5 beta,并且遇到了完全相同的问题.有没有人看过这个问题,或者有任何想法如何解决它?

我正在使用PostgreSQL 8.3,使用资源本地事务(在Tomcat中运行).使用内置连接池,但使用C3P0没有区别.

hibernate hql

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

正则表达式:两场比赛之间的负向前瞻

我正在尝试构建一个像这样的正则表达式:

[match-word] ... [exclude-specific-word] ... [match-word]
Run Code Online (Sandbox Code Playgroud)

这似乎与负面预测有关,但是当我遇到这样的情况时,我遇到了问题:

[match-word] ... [exclude-specific-word] ... [match-word] ... [excluded word appears again]
Run Code Online (Sandbox Code Playgroud)

我希望上面的句子匹配,但是第一个和第二个匹配单词之间的负面预测"溢出",所以第二个单词永远不会匹配.

让我们看一个实际的例子.

我不想匹配每个带有"我"和"馅饼"这个词的句子,而不是那两个词之间的"讨厌"这个词.我有这三句话:

i sure like eating pie, but i love donuts <- Want to match this
i sure like eating pie, but i hate donuts <- Want to match this
i sure hate eating pie, but i like donuts <- Don't want to match this
Run Code Online (Sandbox Code Playgroud)

我有这个正则表达式:

^i(?!.*hate).*pie          - have removed the word boundaries for clarity, original is: ^i\b(?!.*\bhate\b).*\bpie\b 
Run Code Online (Sandbox Code Playgroud)

哪个匹配第一个句子,但不匹配第二个句子,因为负向前瞻扫描整个字符串.

有没有办法限制负面前瞻,如果在遇到"讨厌"之前遇到"馅饼",它是否满意?

注意:在我的实现中,此正则表达式之后可能还有其他术语(它是从语法搜索引擎动态构建的),例如:

^i(?!.*hate).*pie.*donuts …
Run Code Online (Sandbox Code Playgroud)

regex lookahead negative-lookahead

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

将透明PNG转换为JPG时覆盖透明度颜色

我正在使用Dragonfly在Rails应用程序中生成缩略图.

我正在以JPG的形式提供所有图片图片.现在客户端正在上传透明的PNG文件,如下所示:

http://www.ibanez.co.jp/products/images/eg2010/ART120_TRF_12_02.png

Dragonfly使用RMagick将这些图像转换为JPG.问题是它将PNG图像转换为具有黑色背景的JPG,而我的网站设计需要白色背景.我试图像这样覆盖它:

encoded_image = Magick::Image.from_blob(image.data).first

if encoded_image.format.downcase == format
  image # do nothing
else
  encoded_image.format = format
  encoded_image.background_color = "white"
  encoded_image.transparent_color = "white"
  encoded_image.to_blob
end
Run Code Online (Sandbox Code Playgroud)

但制作的JPG图像仍然包含黑色背景.在转换透明层时,有谁知道如何击败RMagick使用白色背景?

我知道我可以作为PNG使用,但随后图像的大小是它的10倍,并且该网站的带宽非常大.

ruby rmagick dragonfly-gem

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

.NET Compact Framework PowerToys

我正在尝试对我们的旧版 .NET Compact Framework 3.5 应用程序(在 Windows CE/Windows 移动设备上运行的仓库应用程序)进行一些开发。

在 Visual Studio 2008 中打开项目时,出现此错误:

未找到导入的项目“C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.CompactFramework.CSharp.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。

我认为这是由于缺少“Power Toys for .NET Compact Framework 3.5”造成的,这可能是最近升级到 Windows 2004 时删除的。

此软件包可在以下 URL 获得:https : //www.microsoft.com/en-us/download/details.aspx?id=13442

不过微软好像已经删除了,网上也找不到镜像。

有没有人有这个包的副本,可以下载?

.net compact-framework

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