小编Wil*_*ill的帖子

在一个巨大的字符串中找到长重复的子串

我天真地想象我可以构建一个后缀trie,其中我保持每个节点的访问计数,然后计数大于1的最深节点是我正在寻找的结果集.

我有一个非常长的字符串(数百兆字节).我有大约1 GB的RAM.

这就是为什么用计数数据构建后缀trie在空间方面效率太低而无法为我工作.引用维基百科的后缀树:

存储字符串的后缀树通常比存储字符串本身需要更多的空间.

每个边缘和节点中的大量信息使得后缀树非常昂贵,在良好实现中消耗源文本的存储器大小的大约十到二十倍.后缀阵列将此要求降低到四倍,研究人员继续寻找更小的索引结构.

那是维基百科对树的评论,而不是特里.

如何在如此大量的数据中以及在合理的时间内(例如在现代台式机上不到一小时)找到长重复序列?

(一些维基百科链接,以避免人们将它们作为'答案'发布:字符串算法,特别是最长的重复子字符串问题 ;-))

string algorithm performance search

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

Linux async IO的状态?

我在这里问,因为谷歌搜索引导你在档案馆周围愉快的旅行,没有暗示目前的状态.如果你去谷歌,似乎异步IO在2001年到2003年风靡一时,到2006年,有些东西就像epoll并且libaio正在出现; kevent似乎已经消失了,据我所知,仍然没有好的方法来混合基于完成和基于准备的信号,异步sendfile- 甚至可能吗? - 以及单线程事件循环中的所有其他内容.

所以请告诉我,我错了,这一切都很美好! - 而且,重要的是,使用什么API.

在这方面,Linux与FreeBSD和其他操作系统相比如何?

linux io asynchronous

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

迭代动态导入的模块中定义的类

我有一个动态导入子包的模块; 我如何迭代它包含的类?

我一直在导入模块并列出如下名称:

package = current_module.__name__
package = package[:package.rindex(".")] # get the package
package = "%s.sub.%s"%(package,name) # make the name of the child
print "(loading package %s)"%package
module = __import__(package) # this succeeds
for name,obj in inspect.getmembers(module):
    print name,type(obj)
Run Code Online (Sandbox Code Playgroud)

这仅打印模块属性,而不是模块定义的类类型:

__builtins__ <type 'dict'>
__doc__ <type 'NoneType'>
__file__ <type 'str'>
__name__ <type 'str'>
__package__ <type 'NoneType'>
__path__ <type 'list'>
imported_package <type 'module'>
Run Code Online (Sandbox Code Playgroud)

UPDATE

看来,我的课不是在__dict__ 除非fromlist非空!但是,from-list中的值似乎没有得到验证; [""]似乎工作得很好,突然出现了课程!

谁能解释为什么会这样?

(标准的ubuntu python 2.7.1+(r271:86832)

python introspection

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

如何在单个事件循环中一起使用AIO和epoll?

如何在单个事件循环中将AIO和epoll结合在一起?

谷歌在2002年和2003年发现了许多关于统一它们的讨论,但不清楚是否有任何事情发生,或者是否有可能.

有没有人使用eventfd为aio信号滚动自己的epoll循环?

linux asynchronous epoll aio

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

在Android APK中嵌入版本细节

我的代码存储在SVN版本控制中.我使用Eclipse来构建我的Android应用程序.

在我的应用程序中,我有一个关于盒子的东西.我想在此显示正确的源代码控制版本/标记/其他内容.

有没有一种方法可以自动执行此操作,以便我的约会框中的版本字符串始终是正确的,或者这是我每次提交时都需要手动编辑的内容?

关于$ keywords $的早期答案的Thx.

设置SVN属性svn:keywords,以Rev不扩大private String m_svn_rev = "$Rev:$"我提交每次文件.

SVN是一个文件版本控制系统.

相反,我想知道我是否可以以某种方式预处理Android构建中的某些文件来注入svnversion输出?

java eclipse version-control android

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

动态语言比静态语言慢吗?

动态语言是否比静态语言慢,因为例如,运行时必须一致地检查类型?

performance dynamic-languages

9
推荐指数
4
解决办法
4262
查看次数

停止文本在Web地址中的句点上拆分为多行

我有一个Android TextView显示一些文本,它是多行的.但是,在文中,我有时会有域名; 如何阻止TextView在其中的句点上拆分行?

例如,是否存在unicode非破坏期?


要查看包装电子邮件地址的操作问题,请运行
android create project --target 16 --path demo --package com.example.demo --activity MainActivity
并将文本更改res/layout/main.xml为" Hello World, MyActivity filler text + email foo@foo.com".这会在Galaxy S3(API级别16)上生成此输出:

邮件包装

(根据需要调整文本以查看具有其他屏幕尺寸的设备上的包装.值得注意的是,在Intellij的布局预览中正确完成包装,它只在设备上发生故障.)

unicode android word-wrap textview

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

分析长期运行的Python服务器

我有一个长期运行的扭曲服务器.

在大型系统的测试,在一个特定点数分钟到测试,当一些客户进入特定国家和特定的外部事件发生,那么这台服务器需要100%的CPU的几分钟,做的工作非常缓慢.我想知道它在做什么.

如何在长时间运行的服务器中获取特定时间段的配置文件?

如果有办法在运行时启用或注入探查器,我可以轻松地通过HTTP发送服务器启动和停止消息?

鉴于选择,我希望基于堆栈 /调用图分析,但即使叶采样也可能提供洞察力.

python performance profiling

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

从优先级队列中删除项目

在Python中,heapq模块提供优先级队列.

它有插入和弹出项目的方法.

如何从队列中删除已插入但不是最低优先级的项目?

(也欢迎使用替代其他收藏品的替代食谱)

python data-structures

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

追踪int []的分配

通过JMX在JVisualVM中查看我的远程应用程序时,我发现空闲时内存使用情况如下:

在此输入图像描述

采用堆转储并使用JVisualVM进行分析,我看到一大块内存存在于几个int[]没有引用的大数组中,通过比较堆转储,我可以看到它们似乎正在占用内存并被回收GC定期.

我很想跟踪这些,因为它引起了我的兴趣,我自己的代码永远不会故意分配任何int[]数组.

我确实使用了很多像netty这样的库,所以罪魁祸首可能在其他地方.我确实有其他服务器具有相同的框架组合,但在那里看不到这个锯齿.

我怎样才能发现谁在分配它们?

java debugging

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