相关疑难解决方法(0)

JavaScript中的字符串压缩

我正在寻找一个JavaScript函数,给定一个字符串返回一个压缩(更短)的字符串.

我正在开发一个Chrome网络应用程序,可以将长字符串(HTML)保存到本地数据库.出于测试目的,我试图压缩存储数据库的文件,并且缩小了五倍,所以我认为如果我压缩存储的东西,它将有助于保持数据库更小.

我在JavaScript中找到了LZSS的实现:http://code.google.com/p/u-lzss/("U-LZSS").

当我使用简短的示例字符串(解码===编码)"手动"测试它时它似乎有效,而且它在Chrome中也相当快.但是当给出大弦(100 ko)时,它似乎会混乱或混合弦的后半部分.

是否有可能U-LZSS期望短字符串并且不能处理更大的字符串?是否可以调整一些参数以移动上限?

javascript lossless-compression google-chrome-extension

33
推荐指数
5
解决办法
3万
查看次数

字符串与字节数组,性能

(这篇文章是关于高频类型编程)

我最近在一个论坛(我认为他们正在讨论Java)上看到,如果你必须解析大量的字符串数据,那么使用字节数组比使用split()的字符串更好.确切的帖子是:

使用任何语言,C++,Java,C#的一个性能技巧是避免对象创建.这不是分配或GC的成本,而是访问不适合CPU缓存的大型内存阵列的成本.

现代CPU比它们的内存快得多.对于每个高速缓存未命中,它们会停止许多周期.大多数CPU转置预算都是通过大缓存和大量滴答来分配的.

GPU通过准备执行大量线程来隐藏内存访问延迟并且几乎没有缓存并将晶体管花费在更多内核上,从而以不同方式解决问题.

因此,例如,不是使用String和split来解析消息,而是使用可以就地更新的字节数组.你真的想避免在大型数据结构上进行随机内存访问,至少在内部循环中是这样.

他只是说"不要使用字符串,因为它们是一个对象并且创建对象是昂贵的"?还是他说了别的什么?

使用字节数组是否确保数据尽可能长时间保留在缓存中?当你使用字符串时它是否太大而无法保存在CPU缓存中?一般来说,使用原始数据类型是编写更快代码的最佳方法吗?

c# c++ java oop

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