最新 | 最热门 | 最高评价

+1  100行代码的压缩前缀树: 50% smaller

Tag: algo | memory | succinct | trie | bitmap
张炎泼(xp) 发于 2021年02月01日 08:00 | 点击: 833 | 展开摘要
这文介绍一个压缩前缀树实现的sorted set(github: succinct.Set), 区区95行代码, 包含了一组完整的功能:

用 前缀树 存储一个排序数组, 去掉指针, 压缩掉50%的空间;
例如在本文的例子中, 存储2.4MB的200万个单词, 只需要1.2MB.

创建: 从key列表创建一个压缩的前缀树;

查询: 支持Has() 操作来查询1个key是否存在;

优化: 通过索引来加速 bitmap 的操作, 将较大的 bitmap 操作优化到O(1)的

查看全文: http://www.udpwork.com/item/17474.html

+0  Erlang内存体系调优

Tag: Erlang探索 | 调优 | memory | tuning | VM
Yu Feng 发于 2014年04月28日 11:31 | 点击: 2625 | 展开摘要
原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Erlang内存体系调优

Lukas Larsson,核心的VM开发者,最近很活跃,在Erlang内存体系上做了不少工作,包括recon项目的贡献。

他最近在erlang factory会议上分享了“Memory Allocators in the VM, Memory Management: Battle Storie”, 参见这里。

Erlang内存体系架构是个复杂的体系,一般的开发人员能难一眼就能

查看全文: http://www.udpwork.com/item/12187.html

+0  使用DrMemory发现内存编程错误

Tag: c_cxx | drmemory | valgrind
suchasplus 发于 2013年09月19日 12:07 | 点击: 2261 | 展开摘要
DeveloperWorks新文 http://www.ibm.com/developerworks/cn/linux/1309_liuming_drmemory/index.html?ca=drs-

看起来比valgrind好用些

缺点是暂时不支持64位

查看全文: http://www.udpwork.com/item/10699.html

+0  网络栈内存不足引发进程挂起问题

Tag: Linux | 工具介绍 | 网络编程 | 调优 | sk_stream_wait_memory | 网络栈内存不足 | 进程挂起
Yu Feng 发于 2013年02月26日 13:32 | 点击: 3231 | 展开摘要
原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: 网络栈内存不足引发进程挂起问题

我们知道TCP socket有发送缓冲区和接收缓冲区,这二个缓冲区都可以透过setsockopt设置SO_SNDBUF,SO_RCVBUF来修改,但是这些值设多大呢?这些值和协议栈的内存控制相关的值什么关系呢?

我们来解释下:

$ sysctl net|grep mem

net.core.wmem_max = 131071

net.core.rmem_max = 13

查看全文: http://www.udpwork.com/item/9301.html

-1  编译内存屏障(Compiler Memory Barrier)第二讲

Tag: JVM | Compiler Memory Barrier | GCC | JMM
fp1203 发于 2012年01月11日 11:39 | 点击: 4559 | 展开摘要
上一篇 编译内存屏障(Compiler Memory Barrier)第一讲

1. gcc编译的大致过程

可以看到,gcc优化主要分两大部分:Tree优化和RTL(Register Transfer Language)优化;

前文所说的指令调度(Instruction scheduling)即为RTL优化的一部分。

2. 从RTL指令调度出发,追寻Compiler Memory Barrier的踪迹

还是从实验出发,实验代码如下:

volatile int rea

查看全文: http://www.udpwork.com/item/6679.html

+1  编译内存屏障(Compiler Memory Barrier)第一讲

Tag: JVM | Compiler Memory Barrier | GCC | RTL | volatile
fp1203 发于 2012年01月11日 11:11 | 点击: 7961 | 展开摘要
1. 编译优化导致编译器指令重排

要想理解Compiler Memory Barrier,先要理解Compiler Instruction Reorder,即编译器指令重排。

编译器指令重排是编译优化的结果,以gcc来说,它不知道为我们的代码默默做了多少事情,看看那整屏的优化选项就明了了。

本文以ubuntu下的gcc 4.4.3为实验,来逐步分析Compiler Memory Barrier的作用。

gcc的很多优化都可以造成指令重排,最常见的就是基本块重新排序(B

查看全文: http://www.udpwork.com/item/6680.html

+0  《程序员的自我修养》中关于加锁不能保证线程安全的一个错误

Tag: 并行编程 | memory visibility | Pthreads | 原子操作 | 多线程编程 | 线程安全
Guancheng (G.C.) 发于 2011年04月09日 08:49 | 点击: 2680 | 展开摘要
在《程序员的自我修养 — 链接装载与库》一书第28页“过度优化”这一节中,作者提到了编译器优化可能造成多线程bug的情况(我手中的是09年6月第二次印刷那版)。原文如下:

线程安全是一个非常烫手的山芋,因为即使合理的使用了锁,也不一定能保证线程安全,这是源于落后的编译器技术已经无法满足日益增长的并发需求。很多看似无错的代码在优化和并发前又产生了麻烦。最简单的例子,让我们看看如下代码:

x = 0;

Thread 1 Thread 2

lock

查看全文: http://www.udpwork.com/item/4758.html

+0  Java heap dump触发和分析

Tag: Java | heap dump | HPROF | jhat | jmap | jstat | memory analyzer
longhao 发于 2011年03月30日 17:35 | 点击: 4114 | 展开摘要
    为了分析java应用的内存泄漏,使用thread dump往往解决不了问题。使用jstat【eg:jstat -gcutil pid 1000 5】工具查看运行的java应用的heap size,perm size ,survivor ratio等,当时你无法知道是什么对象把堆填满了。

     什么是 Java heap dump



    &nbs

查看全文: http://www.udpwork.com/item/4684.html

+0  ECUG2010分享:C1000K高性能服务器构架技术

Tag: Erlang探索 | bonding | cpu | Erts | memory | numa | os
Yu Feng 发于 2010年10月18日 16:37 | 点击: 3849 | 展开摘要
原创文章,转载请注明: 转载自Erlang非业余研究

本文链接地址: ECUG2010分享:C1000K高性能服务器构架技术

C1000K高性能服务器构建技术
View more presentations from Feng Yu.

点击这里下载 ppt

视频这里

照片这里

这次ECUG2010的讲师来自不同的国家,有点国际化的味道,也说明了这个世界越来越扁平,技术越越来越同步,我们追随技术的压力也越来越大。

Post Footer automatically

查看全文: http://www.udpwork.com/item/3101.html

+0  BigMemory 试用手记

Tag: 开发 | BigMemory | DirectBuffer | ehcache | offheap | Terracotta
司马 刘 发于 2010年10月17日 19:49 | 点击: 6197 | 展开摘要
kafka0102 的文章对 BigMemory 做了很好的介绍,请看《Is Terracotta’s BigMemory a big thing?》。我们的数据访问中间件使用 ehcache 做内存缓存,最近被 Java 的 GC 问题所困扰,Terracotta 最近推出 BigMemory 后我们也很关注,并作了一些测试。具体的配置和使用方法就不说了,官方文档 http://ehcache.org/documentation/offheap_store.ht

查看全文: http://www.udpwork.com/item/3091.html

+5  Is Terracotta’s BigMemory a big thing?

Tag: java | BigMemory | ehcache | jvm | terracotta
kafka0102 发于 2010年09月30日 17:40 | 点击: 3186 | 展开摘要
Terracotta最近推出了个新东西–BigMemory,使得Infoq上的这篇Terracotta’s BigMemory Aiming to Eliminate Garbage Collection for Java Caches文章引来长长的争论。像GigaSpaces、Infinispan等和Terracotta有竞争关系的商业或开源的对手,对BigMemory的诸多方面提出了疑问和质疑。如果BigMemory真的如Terracotta吹的那

查看全文: http://www.udpwork.com/item/2916.html

+0  Deflater/Inflater可能造成Native Memory Leak

Tag: Inflater | jvm | Deflater | Native Memory Leak
bluedavy 发于 2010年08月12日 22:53 | 点击: 2817 | 展开摘要
Deflater/Inflater如使用不当,将有可能造成native memory leak,下面是一段示例的代码:

import java.util.zip.*;

public class Bug {

public static void main( String args[] ) throws Exception{

for(int i=0;i

查看全文: http://www.udpwork.com/item/2809.html
|<<<12>>>| 一共2页, 14条记录