我是mixi株式会社 研究开发组的前坂徹。 上次 的文章介绍了memcached是分布式的高速缓存服务器。 本次将介绍memcached的内部构造的实现方式,以及内存的管理方式。 另外,memcached的内部构造导致的弱点也将加以说明。 Slab Allocation机制:整理内存以便重复使用 最近的memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。 在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。 但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下, 会导致操作系统比mem ...
前几次的文章在这里: 第1次:http://tech.idv2.com/2008/07/10/memcached-001/ 第2次:http://tech.idv2.com/2008/07/11/memcached-002/ 第3次:http://tech.idv2.com/2008/07/16/memcached-003/ 我是Mixi的长野。 第2次 、 第3次 由前坂介绍了memcached的内部情况。本次不再介绍memcached的内部结构, 开始介绍memcached的分布式。   memcached的分布式 ...
我是mixi株式会社 开发部系统运营组的长野。 日常负责程序的运营。从今天开始,将分几次针对最近在Web应用的可扩展性领域 的热门话题memcached,与我公司开发部研究开发组的前坂一起, 说明其内部结构和使用。   memcached是什么? memcached的特征 协议简单 基于libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 安装memcached memcached的安装 memcached的启动 ...
下面是《memcached全面剖析》的第三部分。 发表日:2008/7/16 作者:前坂徹(Toru Maesaka) 原文链接:http://gihyo.jp/dev/feature/01/memcached/0003 前几次的文章在这里: 第1次:http://tech.idv2.com/2008/07/10/memcached-001/ 第2次:http://tech.idv2.com/2008/07/11/memcached-002/   memcached在数据删除方面有效利用资源 数据不会真正从me ...
信息: validateJarFile(D:\xj\workspace\webworktest\webapp\WEB-INF\lib\servlet-api-2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class   分析: jsp-api.jar和servlet-api.jar这两个包tomcat的common\lib已经有了,必须将\WEB-INF\lib\目录下的去掉,否则会冲突的,会引起tomcat启动正常,而 ...
本文主要包含以下内容:   MSComm控件两种处理通讯的方式CommPort属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Settings 属性InputLen 属性EOFEnable 属性Handshake 常数OnComm 常数InputMode 常数错误消息     MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delp ...
关于MySQL select into 和 SQLServer select into 一.MySQL不支持Select Into语句直接备份表结构和数据,由于工作中的需要在网上找到一种方法可以代替, 也有其它方法可以处理,总结如下: 方法1:      MYSQL不支持:         Select * Into new_table_name from old_table_name;     替代方法:     ...
文中使用函数“Ext.query”但须谨记它是“Ext.DomQuery.select()”的简写方式。HTML源码: 1: <html> 2: <head> 3: </head> 4: <body> 5: <script type="text/javascript" src="../ext/ext-base.js"></script> 6: <script type="text/javascript ...
1.fireEvent()是强迫触发某个事件。 如:<form onsubmit="a()">。。。中,如果button的form.submit()的方式提交表单,是不会主动触发onsumbit事件的,如果必须的话,就要在submit前fireEvent("onsubmit")下,这样就会触发该事件了。 attachEvent()是绑定函数到某个事件上(detachEvent是卸载)。 如:<button id=btn><script>var f =new Function("event","alert('i am attached funct ...
CREATE TABLE #Test( createDate varchar(8)) INSERT INTO #TestSELECT '20080602'UNION ALLSELECT '20080603'UNION ALLSELECT '20080701' SELECT * FROM #Test -----------------------------------------------SELECT * FROM #TestWHERE CAST(createDate as datetime)BETWEEN '20080604' AND '20080730' &nb ...
在使用Ext2 form的过程中,发现了一些表单项在IE下外观显示的问题:1、输入框下边的线消失 2、日期控件及combo控件右侧的图片和左侧输入域垂直方向没有对齐。这让表单看起来极其难受。 今天在JavaEye中找到了解决办法,赶紧贴出来,希望对同样遇到这些问题的朋友有所帮助。解决办法: 引用 在Ext-all.css中找到如下内容:.ext-ie .x-form-text { margin-top:-1px; margin-bottom:-1px; height:22px; line-height:18px; }然后替换 margin-bottom:-1px; 为 margin- ...
首先要说明的是 web上用activex是门被抛弃的技术。为什么这么说,主要基于以下几个原因:1.功能过于强大,强大到一旦安装,他所具有的权限可以做任何事,极易被人利用做坏事(相信大家都有浏览网页后莫名被安装流氓软件的经历,当然流氓软件利用的方式不止控件一种);2。通过网页下载控件的中间过程受到操作系统、杀毒软件、浏览器等多方面因素限制,这使你的控件产品未必能在所有用户的电脑上正常使用;3。最恶心的一点,未签名没有正规安全证书的控件,在最新的浏览器上(IE7等)默认安全策略是直接屏蔽掉的,而你如果想要获取这个信任,需要向微软等少数单位申请,花费有多少?据说是每年4千多。。。  ...
  • 15:07
  • 浏览 (170)
  • 评论 (0)
一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系统发送来的查询和控制信息,并将执行结果或查询结果发送回主控系统。本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程。 本类库主要包括:SerialBean.java (与其他应用程序的接口), SerialBuffer.java (用来保存从串口所接收数据的缓冲区), ReadSerial.java (从串口读取数据的程序)。另外本类库还提供了一个例程SerialExample.java 作为示范。在下面的内容中将逐一对这几个部分进行详细介绍 ...
使用JNative对条码打印机进行打印 因项目需要,对Godex EZ2300条码机进行调用打印, 驱动为Ez2000.dll, 用JNI可以实现调用,但比较麻烦, 需 要用到VC6进行DLL封装,改用JNative组件进行调用, 步骤如下: 1. 下载JNative-1.3.2.zip组件库 2. 解压出来后有JNative.jar / JNativeCpp.dll / libJNativeCpp.so三个文件,JNative.jar置于%JAVA_HOME%/jre/lib/ext目录下, JNativeCpp.dll置于%SYSTEM%/WINDOWS/SYSTEM32目录下 3.将Ez ...
多媒体解决方案是:一般普通的播放任务使用 Totem 电影播放机,如果遇到不能播放的情况或者看大碟时就选用 Mplayer ,播放音乐使用 audacious。 装多媒体软件和相应解码器 安装audacious  Ubuntu中类似千千静听的的播放器, 支持播放 ogg*, flac*, mp3, wma, wav, 3gp 这些格式。 安装 mplayer 和 totem (播放 xvid/divx 编码的 avi 格式 视频, rm/rmvb/asf/wmv 等流媒体视频,外加 vcd/dvd 和其他 mpeg2/mpeg4 视频 ...
在Linux系统下要查看ISO文件,可以将ISO文件跟普通的硬盘一样,直接挂载到 Linux 系统下;在linux下默认的ISO挂载点位于"/media"目录,下面是挂载一个ISO文件的方法: sudo mkdir /media/cdimage #建立一个文件夹作为ISO挂载点 sudo mount -o loop myfile.iso /media/cdimage #挂载ISO文件,使用参数 -o loop 使用你想挂载的iso文件代替myfile.iso。 挂载一个镜像文件使之能被写入,使用下面的命令: sudo mkdir /media ...
目录 概述 第 1 部分:安装 Linux RHEL 2.1 RHEL 3 SLES 8 第 2 部分:针对 Oracle 配置 Linux 验证系统要求 创建目录 创建 Oracle 组和用户帐户 配置 Linux 内核参数 为 Oracle 用户设置 Shell 限制 避免错误!(仅限 SLES 8) Oracle 用户的环境变量 第 3 部分:安装 Oracle 安装软件 第 4 部分:配置存储 文件系统 自动存储管理 结论 ...
记录一下Linux/Unix上的时间处理: UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒,Epoch则是指定为1970年一月一日凌晨零点零分零秒,格林威治时间。 目前大部份的UNIX系统都是用32位元来记录时间,正值表示为1970以后,负值则表示1970年以前。我们可以很简单地计算出其时间领域: 2^31/86400(s) = 24855.13481(天) ~ 68.0958(年) 1970+68.0958 = 2038.0958 1970-68.0958 = 1901.9042 时间领域为[1901.9042,2038.0958] ...
对许多用户来说,在DOS和Windows环境下利用工具软件WinZip、ARJ等压缩或解压文件是比较容易的事。但是,在Linux中如何对文件进行压缩与解压呢? 用tar建立存档 tar是“tape archive”(磁带存档)的简称,它出现在还没有软盘驱动器、硬盘和光盘驱动器的计算机早期阶段。那时软件的发行和备份都需要大卷的磁带,计算机上运 行的头几个程序中就得有一个是磁带的阅读程序。随着时间的推移, tar命令逐渐变为一个将很多文件进行存档的工具,目前许多用于Linux操作系统的程序就是打包为tar档案文件的形式。 tar 命令的格式是 ...
  • 11:13
  • 浏览 (56)
  • 评论 (0)
要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/ 目前最新dom4j包下载地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar. 以下是相关操作: ...
  • 21:19
  • 浏览 (102)
  • 评论 (0)
Copiz Fusion 官方博客:http://forlong.blogage.de/ 源: deb http://ppa.launchpad.net/amaranth/ubuntu feisty main 要启用 Ubuntu 8.04 LTS (Hardy Heron) 中的3D 特效就必然先安装好显卡的驱动程序。我们不建议新手另外下载 驱 动程序安装,因为 Ubuntu 8.04 LTS (Hardy Heron) 自带了大量的驱动程序,通过“受限驱动管理器”来进行显卡驱动安装,对于新手来说大大地降低了安装的难度。因此,本文中所安 ...
  • 15:43
  • 浏览 (530)
  • 评论 (0)
打开终端,执行以下命令,或使用Adept/新立得软件管理器,在其中分别搜索"sun-java6-jre"和"sun-java6-jdk"并标记安装。 sudo apt-get install sun-java6-jre 如果空间富裕,建议安装一个JDK。 sudo apt-get install sun-java6-jdk 提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装。 设置当前默认的java解释器: sudo update-alternatives ...
  • 10:40
  • 浏览 (75)
  • 评论 (0)
Ubuntu系统目录结构   以下为Ubuntu目录的主要目录结构,您稍微了解它们都包含了哪些文件就可以了,不需要记忆。 /  根目录  │ ├boot/ 启动文件。所有与系统启动有关的文件都保存在这里 │ └grub/ Grub引导器相关的文件 │ ├dev/ 设备文件 ├proc/ 内核与进程镜像(这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。) │ ├mnt/ 临时挂载 ├media/ 挂载媒体设备 │ ├root/ root用户的$HOME目录 ├home/ │ ...
Thesd days I've add some sources to the /ect/apt/sources.list, and found I cannot update anymore... this is what i get... E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/dpkg/status E: The package lists or status file could not be parsed or opened. I've tr ...
ubuntu默认开机是不自动挂载硬盘分区的,想要开机自动挂载硬盘,需手动编辑 /etc/fstab 文件,该文件描述了系统启动时所挂载的硬盘设置,具体过程: 先查看磁盘的uuid(当然也可以查看 label,这样较为清楚地看到分区名称): ls -al /dev/disk/by-uuid (ls -al /dev/disk/by-label) 我的是: 总用量 0 drwxr-xr-x 2 root root 160 2008-05-18 15:52 . drwxr-xr-x 6 root root 120 2008-05-18 15:52 .. lrwxrwxr ...
今天想在Ubuntu下练练手,写写C语言(本来早就该在Linux下学C了),结果发现C的格式差不多都忘记光了 自然,第一个程序仍然是经典的 HelloWorld   #include <stdio.h> void main() {     printf("Hello World!"); }   在ubuntu下,GCC 是不调用stdio.h的。需要include,如果没有include,则可能:隐式声明与内建函数 ‘printf’ 不兼容 #include ...
用sudo apt-get update时出现“ E: 无法获得锁 /var/lib/apt/lists/lock”错误。 在网上搜索到的解决方案──“将/var/lib/apt/list/lock删除掉即可”──其实是一种极端的情况,也就是在上次更新没有正常关闭的情况下使用。 在大部分情况下,问题的原因在于其它的程序如系统的自动更新、新立得等正在使用apt-get进程,所以解决方法也就是将这一进程关闭。 具体如下: 1、ps-aux 查出apt-get进程的PID,通常是一个四位数字。 2、用sudo kill PID代码 杀死进程 ...
在终端执行以下命令(第一条是备份现有服务器列表,第二条是使用Gedit编辑,您也可以使用自己喜爱的编辑器编辑。) sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup sudo gedit /etc/apt/sources.list 从以下各服务器列表内容中选择一段替换文件中的所有内容(请根据自己网络环境设置更新服务器,以达到最快的速度。) * Archive.ubuntu.com 更新服务器(欧洲): # deb http://archive.ubuntu.com/ubuntu/ dapper m ...
方法一:插件法 现在GRADETWO做出了一款PIDGIN的插件,使得我门广大的LINUX用户可以使用飞信 http://www.linuxsir.org/bbs/thread320802.html 这是最新版本的发行地址,需要的朋友可以从这里下载 PS:这里要注意一点,就是一定不要把发行版本弄错,这是前车之鉴,我就把发行版本弄错了 装了一个64位的版本,怎么弄都不成功,走了不少弯路 接下来解压缩什么的就不提了 然后是保存路径的问题 有三种路径可以选择 把文件放置到 $HOME/.purple/plugins/ 或者/usr/lib/purple-2/或者/us ...
ispring
搜索本博客
最近加入圈子
存档
最新评论