10 2011 档案

摘要:SWF 文件不能访问本地资源 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。分类: flex错误 2010-01-27 11:40 2429人阅读 评论(0)收藏 举报错误信息:SecurityError: Error #2148: SWF 文件 D:/demo/test/index.swf 不能访问本地资源 D:/demo/test/bin-debug/textLayout_4.0.0.10485.swf。只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。at flash.net::URLStream/load()at flash. 阅读全文
posted @ 2011-10-31 14:32 Lunaa 阅读(116) 评论(0) 推荐(0) 编辑
摘要:javascript求助编辑百科名片http://baike.baidu.com/view/16168.htmJavascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。编辑本段基本概念 JavaScript是一种基于对象和事件驱动并. 阅读全文
posted @ 2011-10-30 22:40 Lunaa 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Redis性能评测字号 欢迎发表评论02011年09月27日01:23来源:IT168 引言 本篇要评测的NoSQL产品是Redis,可以把它的功能理解为一个Key-Value的数据结构操作,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注。国内的新浪微博就大规模的使用了Redis来存储用户关系和计数。 介绍 按照官方的说法,Redis是用ANSI C开发的,能运行在大多数POSIX(Linux, *BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本。目前最新的版本是2.2.11,这个版本主要是修复了一个2.2.7版本中遍历方式优化带来的一个b... 阅读全文
posted @ 2011-10-29 21:51 Lunaa 阅读(279) 评论(0) 推荐(0) 编辑
摘要:膜拜Redis Redis马上就要释出1.0Stable了,是出手的时候了。Redis的介绍数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDB,Tokyo Cabinet等等。Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Set 阅读全文
posted @ 2011-10-29 21:48 Lunaa 阅读(241) 评论(0) 推荐(0) 编辑
摘要:目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的Web2.0时代,不可取。Memcache崩溃后的雪崩效应:作为缓存的Memcache一旦崩溃,MySQL很可能在短时间内承受高负载而宕机。据说前段时间新浪微博就遭遇了这样的问题。注:关于清理过期数据的问题,可以在程序架构上想办法,如果数据操作有统一DAO封装的话,可以利用Observer模式来 阅读全文
posted @ 2011-10-15 23:01 Lunaa 阅读(124) 评论(0) 推荐(0) 编辑
摘要:BULK INSERT 在SQL Server中,BULK INSERT是用来将外部文件以一种特定的格式加载到数据库表的T-SQL命令。该命令使开发人员能够直接将数据加载到数据库表中,而不需要使用类似于Integration Services这样的外部程序。虽然BULK INSERT不允许包含任何复杂的逻辑或转换,但能够提供与格式化相关的选项,并告诉我们导入是如何实现的。BULK INSERT有一个使用限制,就是只能将数据导入SQL Server。 插入数据 下面的例子能让我们更好的理解如何使用BULK INSERT命令。首先,我们来创建一个名为Sales的表,我们将要把来自文本文件的数... 阅读全文
posted @ 2011-10-15 22:56 Lunaa 阅读(870) 评论(0) 推荐(0) 编辑
摘要:MongoDB、HandlerSocket和MySQL性能测试及其结果分析分享一个关于 MongoDB、HandlerSocket 及 MySQL 的性能测试的结果分析。作者:洪小军出处:http://www.cnblogs.com/inrie一、测试环境1、测试服务器状况共涉及4台测试服务器:压力测试服务器 Web服务器 MongoDB服务器 MySQL服务器。 机器配置为:CPU:Intel(R) Core(TM)2 Duo CPU E7200 @ 2.53GHzRAM:8G DDR2 667磁盘:SATA操作系统:Redhat 5.51.1 压力测试服务器安装Webbench 1.5,通 阅读全文
posted @ 2011-10-15 22:53 Lunaa 阅读(123) 评论(0) 推荐(0) 编辑
摘要:QPS (Query per second) (每秒查询量)TPS(Transaction per second) (每秒事务量,如果是InnoDB会显示,没有InnoDB就不会显示)Read/Writes Ratio(数据库读写比率,对是否使用MySQL Replication还是使用MySQL Cluster很有参考价值。)MyISAM Key buffer read ratioMyISAM Key buffer write ratioSlow queries per minute (平均一分钟多少慢查询)Slow full join queries per minute(慢查询的比率)T 阅读全文
posted @ 2011-10-15 22:37 Lunaa 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Effective C++学习笔记:确定基类有虚析构函数设想在一个军事应用程序里,有一个表示敌人目标的类: class enemytarget{public:enemytarget() { ++numtargets; }enemytarget(const enemytarget&) { ++numtargets; }~enemytarget() { --numtargets; }static size_t numberoftargets(){ return numtargets; } virtual bool destroy(); // 摧毁enemytarget对象后// 返回成功 阅读全文
posted @ 2011-10-12 22:30 Lunaa 阅读(122) 评论(0) 推荐(0) 编辑
摘要:C++虚函数表解析(转)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大 阅读全文
posted @ 2011-10-12 21:55 Lunaa 阅读(119) 评论(0) 推荐(0) 编辑
摘要:LRU和LFU是不同的!LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面!LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!比如,第二种方法的时期T为10分钟,如果每分钟进行一次调页,主存块为3,若所需页面走向为2 1 2 1 2 3 4注意,当调页面4时会发生缺页中断若按LRU算法,应换页面1(1页面最久未被使用) 但按LFU算法应换页面3(十分钟内,页面3只使用了一次)可见LRU关键是看页面最后一次被使用到发生调度的时间长短,而LFU关键是看一定时间段内页面 阅读全文
posted @ 2011-10-12 17:20 Lunaa 阅读(155) 评论(0) 推荐(0) 编辑
摘要:NAMEepoll - I/O event notification facilitySYNOPSIS#include DESCRIPTIONepoll is a variant of poll(2) that can be used either as Edge or Level Triggered interface and scales well tolarge numbers of watched fds. Three system calls are provided to set up and control an epoll set: epoll_cre-ate(2), epol 阅读全文
posted @ 2011-10-11 22:05 Lunaa 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1. 终端 在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),Shell进程启动的其他进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器上。此外在控制终端输入一些特殊的控制键可以给前台进程发信号,例如Ctrl+C表示SIGINT,Ctrl+\表示SIGQUIT。2. 会话与进程组 每次用户登录终端时会产生一个会话(session)。从用户登录开始.. 阅读全文
posted @ 2011-10-11 15:28 Lunaa 阅读(212) 评论(0) 推荐(0) 编辑
摘要:socketpair - a slight generalization of pipes used for two-way stream communication.以下内容来自:匠意雕码 http://my.oschina.net/zengsai/blog/12583今天用了一个从没玩过的socket函数socketpair(),它的作用是在进程内创建一对sock连接。乍一看好像也没什么,但是配合fork()使用之后就是各种欢乐。如下。#define STRING1 "message from parent"#define STRING2 "messgae f 阅读全文
posted @ 2011-10-11 15:15 Lunaa 阅读(219) 评论(0) 推荐(0) 编辑
摘要:守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则并不一致。需要注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将给出Linux下守护进 阅读全文
posted @ 2011-10-11 14:55 Lunaa 阅读(173) 评论(0) 推荐(0) 编辑
摘要:您現在正設計一個交通號誌程式,假設目前只有紅、綠、黃三個燈號,您也許會這麼設計:class TrafficLight {private enum State {RED, GREEN, YELLOW}private State state = State.RED;void change() {switch(state) {case RED:System.out.println("紅燈");sleep(5000);state = State.GREEN;break;case GREEN:System.out.println("綠燈");sleep(5000) 阅读全文
posted @ 2011-10-11 14:15 Lunaa 阅读(81) 评论(0) 推荐(0) 编辑
摘要:您現在正設計一個交通號誌程式,假設目前只有紅、綠、黃三個燈號,您也許會這麼設計:class TrafficLight {private enum State {RED, GREEN, YELLOW}private State state = State.RED;void change() {switch(state) {case RED:System.out.println("紅燈");sleep(5000);state = State.GREEN;break;case GREEN:System.out.println("綠燈");sleep(5000) 阅读全文
posted @ 2011-10-11 14:15 Lunaa 阅读(89) 评论(0) 推荐(0) 编辑
摘要:每個執行緒處理一個請求,每次執行緒執行完請求後,再次嘗試取得下一個請求並執行,這是Worker Thread的基本概念,對於一些需要冗長計算或要在背景執行的請求,可以採用Worker Thread。在 Thread-Per-Message 模式中,其實已經有點Worker Thread的概念,在Service物件接收到資料後,以匿名方式建立執行緒來處理資料,那個建立的執行緒就是Worker Thread,只不用過就丟了。Worker Thread可以應用在不同的場合,例如在 Guarded Suspension 模式 的範例,是使用一個執行緒來處理請求佇列中的請求,如果請求不斷來到,且請求中可 阅读全文
posted @ 2011-10-11 11:53 Lunaa 阅读(120) 评论(0) 推荐(0) 编辑
摘要:每個執行緒處理一個請求,每次執行緒執行完請求後,再次嘗試取得下一個請求並執行,這是Worker Thread的基本概念,對於一些需要冗長計算或要在背景執行的請求,可以採用Worker Thread。在 Thread-Per-Message 模式中,其實已經有點Worker Thread的概念,在Service物件接收到資料後,以匿名方式建立執行緒來處理資料,那個建立的執行緒就是Worker Thread,只不用過就丟了。Worker Thread可以應用在不同的場合,例如在 Guarded Suspension 模式 的範例,是使用一個執行緒來處理請求佇列中的請求,如果請求不斷來到,且請求中可 阅读全文
posted @ 2011-10-11 11:53 Lunaa 阅读(174) 评论(0) 推荐(0) 编辑
摘要:如果没有安装,则安装之:aptitude install telnet开始测试:dev-server:~# telnet 192.168.0.240 11211Trying 192.168.0.240…Connected to 192.168.0.240.Escape character is ‘^]’.set key1 0 60 9seaprinceSTOREDget key1VALUE key1 0 9seaprinceENDstatsSTAT pid 2557STAT uptime 249422STAT time 1246175982STAT version 1.2.2STAT poin 阅读全文
posted @ 2011-10-10 20:18 Lunaa 阅读(130) 评论(0) 推荐(0) 编辑
摘要:如果没有安装,则安装之:aptitude install telnet开始测试:dev-server:~# telnet 192.168.0.240 11211Trying 192.168.0.240…Connected to 192.168.0.240.Escape character is ‘^]’.set key1 0 60 9seaprinceSTOREDget key1VALUE key1 0 9seaprinceENDstatsSTAT pid 2557STAT uptime 249422STAT time 1246175982STAT version 1.2.2STAT poin 阅读全文
posted @ 2011-10-10 20:18 Lunaa 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Memcache基础教程Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 为什么会有Memcache和memcached两种名称?其实Memcache是这个项目的名称,而memc 阅读全文
posted @ 2011-10-10 20:13 Lunaa 阅读(81) 评论(0) 推荐(0) 编辑
摘要:Memcache基础教程Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 为什么会有Memcache和memcached两种名称?其实Memcache是这个项目的名称,而memc 阅读全文
posted @ 2011-10-10 20:13 Lunaa 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢? 二 远程登录 Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。 1 远程登陆的基本概念 先来看看什么叫登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个... 阅读全文
posted @ 2011-10-10 20:10 Lunaa 阅读(152) 评论(0) 推荐(0) 编辑
摘要:Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢? 二 远程登录 Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。 1 远程登陆的基本概念 先来看看什么叫登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个... 阅读全文
posted @ 2011-10-10 20:10 Lunaa 阅读(130) 评论(0) 推荐(0) 编辑
摘要:Telnet的命令格式:telnet [-d] [-a] [-n tracefile] [-e escapechar] [[-l user] host [port]] 其中各选项的含义为:-d 设置调试开关的初始值为TRUE-a 尝试自动登录。就目前而言,这个选项用于通过ENVIRON 选项的USER变量发送用户名(如果远程主机支持这种用法的话)。如果函数 getlogin(2)返回的当前用户所用的名字与当前用户ID相一致,那么USER变量就为该命令返回的名字,否则为与当前用户ID对应的用户名。-n tracefile打开tracefile文件以记录跟踪信息。-l user当连接至远程系统时. 阅读全文
posted @ 2011-10-10 20:00 Lunaa 阅读(264) 评论(0) 推荐(0) 编辑
摘要:Telnet的命令格式:telnet [-d] [-a] [-n tracefile] [-e escapechar] [[-l user] host [port]] 其中各选项的含义为:-d 设置调试开关的初始值为TRUE-a 尝试自动登录。就目前而言,这个选项用于通过ENVIRON 选项的USER变量发送用户名(如果远程主机支持这种用法的话)。如果函数 getlogin(2)返回的当前用户所用的名字与当前用户ID相一致,那么USER变量就为该命令返回的名字,否则为与当前用户ID对应的用户名。-n tracefile打开tracefile文件以记录跟踪信息。-l user当连接至远程系统时. 阅读全文
posted @ 2011-10-10 20:00 Lunaa 阅读(1230) 评论(0) 推荐(0) 编辑
摘要:Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。香港公共图书馆亦以万维网及Telnet供用户进行续借、预约及读者记录查询服务。传统telnet连线会话所传输的资料并未加密,这代表所输入及显示的资料 阅读全文
posted @ 2011-10-10 19:58 Lunaa 阅读(151) 评论(0) 推荐(0) 编辑
摘要:Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。香港公共图书馆亦以万维网及Telnet供用户进行续借、预约及读者记录查询服务。传统telnet连线会话所传输的资料并未加密,这代表所输入及显示的资料 阅读全文
posted @ 2011-10-10 19:58 Lunaa 阅读(123) 评论(0) 推荐(0) 编辑
摘要:memcached Telnet InterfaceThis is a short summary of everything important that helps to inspect a runningmemcached instance.How To ConnectUse "ps -ef" to find out which IP and port was passed when memcached was started and use the same with telnet to connect to memcache. Example:telnet 10. 阅读全文
posted @ 2011-10-10 19:51 Lunaa 阅读(121) 评论(0) 推荐(0) 编辑
摘要:memcached Telnet InterfaceThis is a short summary of everything important that helps to inspect a runningmemcached instance.How To ConnectUse "ps -ef" to find out which IP and port was passed when memcached was started and use the same with telnet to connect to memcache. Example:telnet 10. 阅读全文
posted @ 2011-10-10 19:51 Lunaa 阅读(126) 评论(0) 推荐(0) 编辑
摘要:http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt一篇讲memcached的文章Protocol--------Clients of memcached communicate with server through TCP connections.(A UDP interface is also available; details are below under "UDPprotocol.") A given running memcached server listens on so 阅读全文
posted @ 2011-10-10 19:47 Lunaa 阅读(130) 评论(0) 推荐(0) 编辑
摘要:http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt一篇讲memcached的文章Protocol--------Clients of memcached communicate with server through TCP connections.(A UDP interface is also available; details are below under "UDPprotocol.") A given running memcached server listens on so 阅读全文
posted @ 2011-10-10 19:47 Lunaa 阅读(137) 评论(0) 推荐(0) 编辑
摘要:tructevent*event_new(structevent_base*,evutil_socket_t,short,event_callback_fn,void*);分配并初始化一个新的event结构体,准备被添加。该函数返回一个新的event,可以被用来event_add或者event_del。Fd和events参数决定了哪些情况会触发事件;callback和callback_arg告诉libevent,当事件触发的时候该干什么。如果事件包含EV_READ,EV_WRITE,或者他们的组合,那么fd这个文件描述符或者socket将要被监视什么时候可读,什么时候可写。如果事件包含EV_S 阅读全文
posted @ 2011-10-10 14:41 Lunaa 阅读(1753) 评论(0) 推荐(0) 编辑
摘要:tructevent*event_new(structevent_base*,evutil_socket_t,short,event_callback_fn,void*);分配并初始化一个新的event结构体,准备被添加。该函数返回一个新的event,可以被用来event_add或者event_del。Fd和events参数决定了哪些情况会触发事件;callback和callback_arg告诉libevent,当事件触发的时候该干什么。如果事件包含EV_READ,EV_WRITE,或者他们的组合,那么fd这个文件描述符或者socket将要被监视什么时候可读,什么时候可写。如果事件包含EV_S 阅读全文
posted @ 2011-10-10 14:41 Lunaa 阅读(224) 评论(0) 推荐(0) 编辑
摘要:函数:intevent_base_loop(structevent_base*,int);等待事件被触发,然后调用它们的回调函数。这是event_base_dispatch的更灵活版本。默认情况下,这个循环会一直运行,直到没有添加的事件,或者直到调用了event_base_loopbreak()或者evenet_base_loopexit().你可以通过flags参数修改这个行为。参数1:eb表示event_base结构体。参数2:flags是EVLOOP_ONCE|EVLOOP_NONBLOCK的组合。返回值:0表示成功,-1表示发生了错误,1表示没有事件被注册。EVLOOP_ONCE:阻塞 阅读全文
posted @ 2011-10-10 13:12 Lunaa 阅读(169) 评论(0) 推荐(0) 编辑
摘要:函数:intevent_base_loop(structevent_base*,int);等待事件被触发,然后调用它们的回调函数。这是event_base_dispatch的更灵活版本。默认情况下,这个循环会一直运行,直到没有添加的事件,或者直到调用了event_base_loopbreak()或者evenet_base_loopexit().你可以通过flags参数修改这个行为。参数1:eb表示event_base结构体。参数2:flags是EVLOOP_ONCE|EVLOOP_NONBLOCK的组合。返回值:0表示成功,-1表示发生了错误,1表示没有事件被注册。EVLOOP_ONCE:阻塞 阅读全文
posted @ 2011-10-10 13:12 Lunaa 阅读(345) 评论(0) 推荐(0) 编辑
摘要:Libevent提供了一个基于缓冲IO的抽象。这个抽象就是bufferevent。Bufferevent提供了自动填充和输出的缓冲区。用户不会直接和IO打交道,而是从输入缓冲区读,在输出缓冲区写。一旦用bufferevent_socket_new初始化,bufferevent结构体可以重复使用bufferevent_enable()和bufferevent_disable()。你需要用bufferevent_read()和bufferevent_write()进行读写,而不是直接用socket进行读写。当读被启用,bufferevent会试图从文件描述符读数据并调用回调函数。Thewritec 阅读全文
posted @ 2011-10-10 09:32 Lunaa 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Libevent提供了一个基于缓冲IO的抽象。这个抽象就是bufferevent。Bufferevent提供了自动填充和输出的缓冲区。用户不会直接和IO打交道,而是从输入缓冲区读,在输出缓冲区写。一旦用bufferevent_socket_new初始化,bufferevent结构体可以重复使用bufferevent_enable()和bufferevent_disable()。你需要用bufferevent_read()和bufferevent_write()进行读写,而不是直接用socket进行读写。当读被启用,bufferevent会试图从文件描述符读数据并调用回调函数。Thewritec 阅读全文
posted @ 2011-10-10 09:32 Lunaa 阅读(94) 评论(0) 推荐(0) 编辑
摘要:Libevent是一个基于事件通知机制的网络库,用来开发可扩展性的网络服务器。Libevent提供了一种机制,可以在指定事件发生于某文件描述符或者一个超时事件到达的时候执行一个回调函数。进一步,Libevent也支持信号触发的回调。Libevent用来替换目前的基于事件驱动的网络服务器中的事件循环。应用程序只需要调用event_dispatch(),然后动态增加或移除事件,而不用修改事件循环。目前,Libevent支持/dev/poll,kqueue(2),select(2),poll(2),epoll(4),andevports。内部事件机制完全独立于暴露的外部接口,因此当Libevent需 阅读全文
posted @ 2011-10-09 21:22 Lunaa 阅读(110) 评论(0) 推荐(0) 编辑
摘要:Libevent是一个基于事件通知机制的网络库,用来开发可扩展性的网络服务器。Libevent提供了一种机制,可以在指定事件发生于某文件描述符或者一个超时事件到达的时候执行一个回调函数。进一步,Libevent也支持信号触发的回调。Libevent用来替换目前的基于事件驱动的网络服务器中的事件循环。应用程序只需要调用event_dispatch(),然后动态增加或移除事件,而不用修改事件循环。目前,Libevent支持/dev/poll,kqueue(2),select(2),poll(2),epoll(4),andevports。内部事件机制完全独立于暴露的外部接口,因此当Libevent需 阅读全文
posted @ 2011-10-09 21:22 Lunaa 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1 引言对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系统是真正实现多任务操作的系统,可以说,不使用多进程编程,就不能算是真正的Linux环境下编程。多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的 阅读全文
posted @ 2011-10-09 20:39 Lunaa 阅读(148) 评论(0) 推荐(0) 编辑
摘要:1 引言对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系统是真正实现多任务操作的系统,可以说,不使用多进程编程,就不能算是真正的Linux环境下编程。多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的 阅读全文
posted @ 2011-10-09 20:39 Lunaa 阅读(171) 评论(0) 推荐(0) 编辑
摘要:fork source exec区别差异 fork 使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process, 但 parent process 的环境是不会因 child process 的改变而改变的. source 使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不 是产生一个 child process 来执行. 由于所有执行结果均于当前 pro 阅读全文
posted @ 2011-10-09 20:36 Lunaa 阅读(176) 评论(0) 推荐(0) 编辑
摘要:fork source exec区别差异 fork 使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process, 但 parent process 的环境是不会因 child process 的改变而改变的. source 使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不 是产生一个 child process 来执行. 由于所有执行结果均于当前 pro 阅读全文
posted @ 2011-10-09 20:36 Lunaa 阅读(109) 评论(0) 推荐(0) 编辑
摘要:说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:#include int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, ..., char *const envp[]);int execv(const char *path, char *const argv[]);int execv 阅读全文
posted @ 2011-10-09 20:33 Lunaa 阅读(167) 评论(0) 推荐(0) 编辑
摘要:说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:#include int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, ..., char *const envp[]);int execv(const char *path, char *const argv[]);int execv 阅读全文
posted @ 2011-10-09 20:33 Lunaa 阅读(168) 评论(0) 推荐(0) 编辑
摘要:FD_CLOEXEC用来设置文件的close-on-exec状态标准。在exec()调用后,close-on-exec标志为0的情况,此文件不被关闭。非零则在exec()后被关闭。默认close-on-exec状态为0,需要通过FD_CLOEXEC设置。#include #include #include extern char **environ;int main(int argc,char *argv[]){int flag;int ret;flag = fcntl(1,F_GETFD,0);printf("close-on-exec is %d\n",flag);fc 阅读全文
posted @ 2011-10-09 20:29 Lunaa 阅读(148) 评论(0) 推荐(0) 编辑
摘要:FD_CLOEXEC用来设置文件的close-on-exec状态标准。在exec()调用后,close-on-exec标志为0的情况,此文件不被关闭。非零则在exec()后被关闭。默认close-on-exec状态为0,需要通过FD_CLOEXEC设置。#include #include #include extern char **environ;int main(int argc,char *argv[]){int flag;int ret;flag = fcntl(1,F_GETFD,0);printf("close-on-exec is %d\n",flag);fc 阅读全文
posted @ 2011-10-09 20:29 Lunaa 阅读(251) 评论(0) 推荐(0) 编辑
摘要:每个文件描述符都有一个close-on-exec标志。默认情况下,这个标志最后一位被设置为 0。这个标志符的具体作用在于当开辟其他进程调用exec()族函数时,在调用exec函数之前为exec族函数释放对应的文件描述符。我们来看一下具体的实例。这是两个程序:view plaincopy to clipboardprint?//file:fcntl int main() { pid_t pid; fd = open("test.txt",O_RDWR|O_APPEND);if (fd == -1) ##printf("open err/n"); print 阅读全文
posted @ 2011-10-09 20:27 Lunaa 阅读(280) 评论(0) 推荐(0) 编辑
摘要:每个文件描述符都有一个close-on-exec标志。默认情况下,这个标志最后一位被设置为 0。这个标志符的具体作用在于当开辟其他进程调用exec()族函数时,在调用exec函数之前为exec族函数释放对应的文件描述符。我们来看一下具体的实例。这是两个程序:view plaincopy to clipboardprint?//file:fcntl int main() { pid_t pid; fd = open("test.txt",O_RDWR|O_APPEND);if (fd == -1) ##printf("open err/n"); print 阅读全文
posted @ 2011-10-09 20:27 Lunaa 阅读(142) 评论(0) 推荐(0) 编辑
摘要:gpedit.msc-----组策略sndrec32-----录音机nslookup----- ip地址侦测器explorer------ 打开资源管理器logoff-------注销命令tsshutdn------60秒倒计时关机命令lusrmgr.msc----本机用户和组services.msc---本地服务设置oobe/msoobe /a---检查xp是否激活notepad------打开记事本cleanmgr------垃圾整理net start messenger--开始信使服务compmgmt.msc---计算机管理net stop messenger--停止信使服务conf-- 阅读全文
posted @ 2011-10-09 12:44 Lunaa 阅读(126) 评论(0) 推荐(0) 编辑
摘要:gpedit.msc-----组策略sndrec32-----录音机nslookup----- ip地址侦测器explorer------ 打开资源管理器logoff-------注销命令tsshutdn------60秒倒计时关机命令lusrmgr.msc----本机用户和组services.msc---本地服务设置oobe/msoobe /a---检查xp是否激活notepad------打开记事本cleanmgr------垃圾整理net start messenger--开始信使服务compmgmt.msc---计算机管理net stop messenger--停止信使服务conf-- 阅读全文
posted @ 2011-10-09 12:44 Lunaa 阅读(136) 评论(0) 推荐(0) 编辑
摘要:目前手头有个关于心博功能的一个案例, 在使用SOL_SOCKET, SO_KEEPALIVE上有一点心得,想写出来和大家分享一下。关于SOL_SOCKET选项SO_KEEPALIVE有一个很详细的英文How TO, 在下面的网页中大家可以看到详细的内容http://www.icewalkers.com/Linux/Howto/TCP-Keepalive-HOWTO/index.html在《UNIX网络编程第1卷》中也有详细的阐述:SO_KEEPALIVE 保持连接检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP 阅读全文
posted @ 2011-10-08 22:07 Lunaa 阅读(358) 评论(0) 推荐(0) 编辑
摘要:目前手头有个关于心博功能的一个案例, 在使用SOL_SOCKET, SO_KEEPALIVE上有一点心得,想写出来和大家分享一下。关于SOL_SOCKET选项SO_KEEPALIVE有一个很详细的英文How TO, 在下面的网页中大家可以看到详细的内容http://www.icewalkers.com/Linux/Howto/TCP-Keepalive-HOWTO/index.html在《UNIX网络编程第1卷》中也有详细的阐述:SO_KEEPALIVE 保持连接检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP 阅读全文
posted @ 2011-10-08 22:07 Lunaa 阅读(143) 评论(0) 推荐(0) 编辑
摘要:在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统的版本的。而你的头文件中的定义并不是最新的。(对于MFC,就是stdafx.h)下面详细列举了每个Windows版本对应的NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE这些宏。The following table describes the preferred macros in use by the Windows header fil 阅读全文
posted @ 2011-10-07 21:55 Lunaa 阅读(155) 评论(0) 推荐(0) 编辑
摘要:在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统的版本的。而你的头文件中的定义并不是最新的。(对于MFC,就是stdafx.h)下面详细列举了每个Windows版本对应的NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE这些宏。The following table describes the preferred macros in use by the Windows header fil 阅读全文
posted @ 2011-10-07 21:55 Lunaa 阅读(250) 评论(0) 推荐(0) 编辑
摘要:系统:win7编译器:vc20101,下载最新的libevent,目前是libevent-2.0.14-stable.tar.gz。2, 解压到目录libevent-2.0.14-stable3,修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10-stable\evthread_win32.c”、“D:\libevent-2.0.10-stable\listener.c”三个文件,在文件开头分别加上一行:#define _WIN32_WINNT 0x05004, 在Makefile.nmake中的CFLAGS中加入/ZI 阅读全文
posted @ 2011-10-07 21:54 Lunaa 阅读(151) 评论(0) 推荐(0) 编辑
摘要:系统:win7编译器:vc20101,下载最新的libevent,目前是libevent-2.0.14-stable.tar.gz。2, 解压到目录libevent-2.0.14-stable3,修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10-stable\evthread_win32.c”、“D:\libevent-2.0.10-stable\listener.c”三个文件,在文件开头分别加上一行:#define _WIN32_WINNT 0x05004, 在Makefile.nmake中的CFLAGS中加入/ZI 阅读全文
posted @ 2011-10-07 21:54 Lunaa 阅读(167) 评论(0) 推荐(1) 编辑
摘要:KMP算法与一个经典概率问题Program Impossible | 2007-11-28 17:41|18 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com转载:http://www.matrix67.com/blog/archives/366考虑一个事件,它有两种概率均等的结果。比如掷硬币,出现正面和反面的机会是相等的。现在我们希望知道,如果我不断抛掷硬币,需要多长时间才能得到一个特定的序列。序列一:反面、正面、反面序列二:反面、正面、正面首先,我反复抛掷硬币,直到最近的三次抛掷结果形成序列一,然后我记下这次我抛掷了多少次才得到了我要的序列。重复执行. 阅读全文
posted @ 2011-10-04 22:01 Lunaa 阅读(111) 评论(0) 推荐(0) 编辑
摘要:KMP算法与一个经典概率问题Program Impossible | 2007-11-28 17:41|18 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com转载:http://www.matrix67.com/blog/archives/366考虑一个事件,它有两种概率均等的结果。比如掷硬币,出现正面和反面的机会是相等的。现在我们希望知道,如果我不断抛掷硬币,需要多长时间才能得到一个特定的序列。序列一:反面、正面、反面序列二:反面、正面、正面首先,我反复抛掷硬币,直到最近的三次抛掷结果形成序列一,然后我记下这次我抛掷了多少次才得到了我要的序列。重复执行. 阅读全文
posted @ 2011-10-04 22:01 Lunaa 阅读(115) 评论(0) 推荐(0) 编辑
摘要:KMP算法小结Posted on2011/06/14 by huangchao主要看了这里,感觉讲的十分的不错,总结一下。首先声明要搜索的串为S,设长度为n,要匹配的串为M,设长度为m.先考虑暴力的算法,暴力的算法是遍历S的每一个字符,然后从这个字符开始和M串进行匹配。时间复杂度为O(nm).怎么在此基础上进行优化?假设现在从某个位置(设为s)开始和M串进行匹配,如果匹配不成功,暴力算法是从这个位置的下一个位置(s+1)进行匹配,直观上来说就是匹配的字符串向后“滑动”了一位。图1能不能想办法让M向后移动的距离最大化?考虑最好的情况,如果和M匹配的S中的m个字符和M中的字符没有一个相等,那么能向 阅读全文
posted @ 2011-10-04 21:48 Lunaa 阅读(115) 评论(0) 推荐(0) 编辑
摘要:KMP算法小结Posted on2011/06/14 by huangchao主要看了这里,感觉讲的十分的不错,总结一下。首先声明要搜索的串为S,设长度为n,要匹配的串为M,设长度为m.先考虑暴力的算法,暴力的算法是遍历S的每一个字符,然后从这个字符开始和M串进行匹配。时间复杂度为O(nm).怎么在此基础上进行优化?假设现在从某个位置(设为s)开始和M串进行匹配,如果匹配不成功,暴力算法是从这个位置的下一个位置(s+1)进行匹配,直观上来说就是匹配的字符串向后“滑动”了一位。图1能不能想办法让M向后移动的距离最大化?考虑最好的情况,如果和M匹配的S中的m个字符和M中的字符没有一个相等,那么能向 阅读全文
posted @ 2011-10-04 21:48 Lunaa 阅读(109) 评论(0) 推荐(0) 编辑
摘要:最近在学字符串匹配的时候接触了这个算法,算法书上都是我讨厌的下标,转来转去,头晕啊。只好上网搜一下,大部分跟书上一样,好不容易找到一篇,总算看得有些懂了。其实最简单的字符串匹配,就是逐个逐个比较,但是这样的效率很低,而KMP算法利用了......(不说了,表达能力差啊,^_^,看看牛人怎么解释的吧)。我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix& 阅读全文
posted @ 2011-10-04 17:35 Lunaa 阅读(91) 评论(0) 推荐(0) 编辑
摘要:最近在学字符串匹配的时候接触了这个算法,算法书上都是我讨厌的下标,转来转去,头晕啊。只好上网搜一下,大部分跟书上一样,好不容易找到一篇,总算看得有些懂了。其实最简单的字符串匹配,就是逐个逐个比较,但是这样的效率很低,而KMP算法利用了......(不说了,表达能力差啊,^_^,看看牛人怎么解释的吧)。我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix& 阅读全文
posted @ 2011-10-04 17:35 Lunaa 阅读(93) 评论(0) 推荐(0) 编辑
摘要:对于一个操作的序列来讲,平摊分析(Amortize Analysis)得出的是在特定问题中这个序列下每个操作的平摊开销。 一个操作序列中,可能存在一、两个开销比较大的操作,在一般地分析下,如果割裂了各个操作的相关性或忽视问题的具体条件,那么操作序列的开销分析结果就可能会不够紧确,导致对于操作序列的性能做出不准确的判断。用平摊分析就可以得出更好的、更有实践指导意义的结果。因为这个操作序列中各个操作可能会是相互制约的,所以开销很大的那一、两个操作,在操作序列总开销中的贡献也会被削弱和限制。所以最终会发现,对于序列来讲,每个操作平摊的开销是比较小的。 我有这样的理解:"对于一个操作序列来讲 阅读全文
posted @ 2011-10-04 17:22 Lunaa 阅读(155) 评论(0) 推荐(0) 编辑
摘要:对于一个操作的序列来讲,平摊分析(Amortize Analysis)得出的是在特定问题中这个序列下每个操作的平摊开销。 一个操作序列中,可能存在一、两个开销比较大的操作,在一般地分析下,如果割裂了各个操作的相关性或忽视问题的具体条件,那么操作序列的开销分析结果就可能会不够紧确,导致对于操作序列的性能做出不准确的判断。用平摊分析就可以得出更好的、更有实践指导意义的结果。因为这个操作序列中各个操作可能会是相互制约的,所以开销很大的那一、两个操作,在操作序列总开销中的贡献也会被削弱和限制。所以最终会发现,对于序列来讲,每个操作平摊的开销是比较小的。 我有这样的理解:"对于一个操作序列来讲 阅读全文
posted @ 2011-10-04 17:22 Lunaa 阅读(191) 评论(0) 推荐(0) 编辑
摘要:LVS负载均衡编辑词条分享 新知社新浪微博人人网腾讯微博移动说客网易微博开心001天涯MSN本词条由 lclnl创建,共有 2位协作者编辑了 4次。最新协作者: gyq274706322 , lclnl。 在分析 服务器 集群 实现 虚拟网络服务 的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术VS/NAT、VS/TUN、VS/DR的工作原理,以及它们的优缺点。纠错 编辑摘要 目录1 简述2 实现虚拟服务的相关方法3 通过NAT实现虚拟服务器(VS/NAT)4 通过IP隧道实现虚拟服务器(VS/TUN)5 通过直接路由实现虚拟服务器(VS/DR)1 简述2 实现虚拟服务的相关方法 阅读全文
posted @ 2011-10-02 18:03 Lunaa 阅读(135) 评论(0) 推荐(0) 编辑
摘要:LVS负载均衡编辑词条分享 新知社新浪微博人人网腾讯微博移动说客网易微博开心001天涯MSN本词条由 lclnl创建,共有 2位协作者编辑了 4次。最新协作者: gyq274706322 , lclnl。 在分析 服务器 集群 实现 虚拟网络服务 的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术VS/NAT、VS/TUN、VS/DR的工作原理,以及它们的优缺点。纠错 编辑摘要 目录1 简述2 实现虚拟服务的相关方法3 通过NAT实现虚拟服务器(VS/NAT)4 通过IP隧道实现虚拟服务器(VS/TUN)5 通过直接路由实现虚拟服务器(VS/DR)1 简述2 实现虚拟服务的相关方法 阅读全文
posted @ 2011-10-02 18:03 Lunaa 阅读(158) 评论(0) 推荐(0) 编辑
摘要:http://erlang.gamecore.cn/R13B04/stdlib/gen_server.html?i=90http://erlang.gamecore.cn/gen_serverGeneric Server BehaviourA behaviour module for implementing the server of a client-server relation. A generic server process (gen_server) implemented using this module will have a standard set of interfac 阅读全文
posted @ 2011-10-02 15:53 Lunaa 阅读(132) 评论(0) 推荐(0) 编辑
摘要:http://erlang.gamecore.cn/R13B04/stdlib/gen_server.html?i=90http://erlang.gamecore.cn/gen_serverGeneric Server BehaviourA behaviour module for implementing the server of a client-server relation. A generic server process (gen_server) implemented using this module will have a standard set of interfac 阅读全文
posted @ 2011-10-02 15:53 Lunaa 阅读(124) 评论(0) 推荐(0) 编辑
摘要:A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player, Adobe Reader, etc.—permission to handle data across multiple domains. When a client hosts content from a particular source domain and that content makes requests directed towards a domain other than it 阅读全文
posted @ 2011-10-02 11:35 Lunaa 阅读(172) 评论(0) 推荐(0) 编辑
摘要:A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player, Adobe Reader, etc.—permission to handle data across multiple domains. When a client hosts content from a particular source domain and that content makes requests directed towards a domain other than it 阅读全文
posted @ 2011-10-02 11:35 Lunaa 阅读(102) 评论(0) 推荐(0) 编辑
摘要:TPC-C学习笔记 摘录:本文章来自:http://blog.csdn.net/Ruluo/archive/2005/10/21/510822.aspxTPC-C学习笔记 2TPCC基准测试 TPCC值被广泛用于衡量C/S环境下,由服务器和客户端构筑的整体系统的性能,它由事物处理性能委员会(TPC,Transaction Processing Corp)制定,TPC为非赢利性国际组织。TPCC值可以反映出系统的性能价格比。TPCC测试系统每分钟处理的任务数,单位为tpm,(transactions per minute)。系统的总体价格(单位为美元)除以TPCC值,就可以衡量出系统的性价比, 阅读全文
posted @ 2011-10-02 11:22 Lunaa 阅读(408) 评论(0) 推荐(0) 编辑
摘要:TPC-C学习笔记 摘录:本文章来自:http://blog.csdn.net/Ruluo/archive/2005/10/21/510822.aspxTPC-C学习笔记 2TPCC基准测试 TPCC值被广泛用于衡量C/S环境下,由服务器和客户端构筑的整体系统的性能,它由事物处理性能委员会(TPC,Transaction Processing Corp)制定,TPC为非赢利性国际组织。TPCC值可以反映出系统的性能价格比。TPCC测试系统每分钟处理的任务数,单位为tpm,(transactions per minute)。系统的总体价格(单位为美元)除以TPCC值,就可以衡量出系统的性价比, 阅读全文
posted @ 2011-10-02 11:22 Lunaa 阅读(266) 评论(0) 推荐(0) 编辑
摘要:初学linux平台上的C编程时间不长,这次正好有一个业务项目需要用到队列,研究和对比了一下市面上的相关产品,总体而言不是太复杂就是性能达不到要求,所以最后还是决定自己写一个。这次用C完完全全由自己实现只是第二次,以前都是下个开源软件改一下,一般来说linux下的软件只要是C开发的,性能都可以接受。但是为了……,还是自己决定写一下。在整个开发过程中,碰到的血泪教训太多了,这里先记录一下,第一:警示自己,以后不要再犯了;第二:给有用的人分享一下,别人跳过的坑尽量避免自己再跳(好像我经常会跳??嘻嘻)! 1.内存泄漏;这是一个老问题了,这次开发的mq使用到了tc服务器接口,本着小心的态度,我几乎每个 阅读全文
posted @ 2011-10-02 09:25 Lunaa 阅读(116) 评论(0) 推荐(0) 编辑
摘要:初学linux平台上的C编程时间不长,这次正好有一个业务项目需要用到队列,研究和对比了一下市面上的相关产品,总体而言不是太复杂就是性能达不到要求,所以最后还是决定自己写一个。这次用C完完全全由自己实现只是第二次,以前都是下个开源软件改一下,一般来说linux下的软件只要是C开发的,性能都可以接受。但是为了……,还是自己决定写一下。在整个开发过程中,碰到的血泪教训太多了,这里先记录一下,第一:警示自己,以后不要再犯了;第二:给有用的人分享一下,别人跳过的坑尽量避免自己再跳(好像我经常会跳??嘻嘻)! 1.内存泄漏;这是一个老问题了,这次开发的mq使用到了tc服务器接口,本着小心的态度,我几乎每个 阅读全文
posted @ 2011-10-02 09:25 Lunaa 阅读(83) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://xmuzyq.javaeye.com/blog/783218-------------------------------------------------------------------------------------------在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮 阅读全文
posted @ 2011-10-02 09:22 Lunaa 阅读(82) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://xmuzyq.javaeye.com/blog/783218-------------------------------------------------------------------------------------------在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮 阅读全文
posted @ 2011-10-02 09:22 Lunaa 阅读(124) 评论(0) 推荐(0) 编辑
摘要:http://www.wangafu.net/~nickm/libevent-book/01_intro.htmlThese documents are Copyright (c) 2009-2010 by Nick Mathewson, and are made available under the Creative Commons Attribution-Noncommercial-Share Alike license, version 3.0. Future versions may be made available under a less restrictive license 阅读全文
posted @ 2011-10-01 23:51 Lunaa 阅读(90) 评论(0) 推荐(0) 编辑
摘要:http://www.wangafu.net/~nickm/libevent-book/01_intro.htmlThese documents are Copyright (c) 2009-2010 by Nick Mathewson, and are made available under the Creative Commons Attribution-Noncommercial-Share Alike license, version 3.0. Future versions may be made available under a less restrictive license 阅读全文
posted @ 2011-10-01 23:51 Lunaa 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Mysql扩展之replication概述http://aronlulu.iteye.com/blog/790641mysql在互联网领域用的如此广泛很大一部分原因是是源于它的replication机制,简单实用,几台PC机子,很容易提高性能,乃中小网站必备良方。 首先什么情况下要扩展数据库,建个网站,建个数据库,某一天网站火了,访问量暴增,意味着从你服务器上读网页的连接多了,IO瓶颈来了,自然想多加几台机子来分担压力,但是数据还要跟源主机上的数据库内数据保持一致,这时候就是开始扩展数据库的时候,replication就开始派上用场了。replication的实现机制 第一步是master必须 阅读全文
posted @ 2011-10-01 22:43 Lunaa 阅读(94) 评论(0) 推荐(0) 编辑
摘要:Mysql扩展之replication概述http://aronlulu.iteye.com/blog/790641mysql在互联网领域用的如此广泛很大一部分原因是是源于它的replication机制,简单实用,几台PC机子,很容易提高性能,乃中小网站必备良方。 首先什么情况下要扩展数据库,建个网站,建个数据库,某一天网站火了,访问量暴增,意味着从你服务器上读网页的连接多了,IO瓶颈来了,自然想多加几台机子来分担压力,但是数据还要跟源主机上的数据库内数据保持一致,这时候就是开始扩展数据库的时候,replication就开始派上用场了。replication的实现机制 第一步是master必须 阅读全文
posted @ 2011-10-01 22:43 Lunaa 阅读(117) 评论(0) 推荐(0) 编辑
摘要:#include "stdio.h" #include "conio.h" void main() { printf("%.20f\n",0.1234567890123456789f); getch(); }观察在VC6,WinTC中的运行结果,可能是0.1234567891043281560000.12345678901234567700而一般在C语言教材上说:浮点数7位有效数字。 双精度数16位有效数字。单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 167 阅读全文
posted @ 2011-10-01 21:52 Lunaa 阅读(189) 评论(0) 推荐(0) 编辑
摘要:#include "stdio.h" #include "conio.h" void main() { printf("%.20f\n",0.1234567890123456789f); getch(); }观察在VC6,WinTC中的运行结果,可能是0.1234567891043281560000.12345678901234567700而一般在C语言教材上说:浮点数7位有效数字。 双精度数16位有效数字。单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 167 阅读全文
posted @ 2011-10-01 21:52 Lunaa 阅读(340) 评论(0) 推荐(1) 编辑
摘要:MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM)。 目前能够运行MySQL Cluster 的操作系统有Linux、Mac OS X和Solaris(一些用户通报成功地在FreeBSD上运行了MySQL Cluster ,但MySQL AB公司尚未. 阅读全文
posted @ 2011-10-01 20:19 Lunaa 阅读(93) 评论(0) 推荐(0) 编辑
摘要:MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM)。 目前能够运行MySQL Cluster 的操作系统有Linux、Mac OS X和Solaris(一些用户通报成功地在FreeBSD上运行了MySQL Cluster ,但MySQL AB公司尚未. 阅读全文
posted @ 2011-10-01 20:19 Lunaa 阅读(116) 评论(0) 推荐(0) 编辑
摘要:[软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制Buffer Overrun定义buffer是程序用来存储数据的连续内存区域,一旦分配完成,其起始地址和大小便固定下来。程序运行过程中,如果使用了超出buffer的区域,那么就发生了buffer overflow(缓冲区溢出)或者buffer overrun(缓冲区越界)。如果该缓冲区分配在stack上,就称之为stack buffer overrun;如果分配在heap,就称为heap overflow。stack buffer overrun会冲毁thread自身及其父线程的栈信息,我们知道在当前stack frame中, 阅读全文
posted @ 2011-10-01 15:16 Lunaa 阅读(117) 评论(0) 推荐(0) 编辑
摘要:[软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制Buffer Overrun定义buffer是程序用来存储数据的连续内存区域,一旦分配完成,其起始地址和大小便固定下来。程序运行过程中,如果使用了超出buffer的区域,那么就发生了buffer overflow(缓冲区溢出)或者buffer overrun(缓冲区越界)。如果该缓冲区分配在stack上,就称之为stack buffer overrun;如果分配在heap,就称为heap overflow。stack buffer overrun会冲毁thread自身及其父线程的栈信息,我们知道在当前stack frame中, 阅读全文
posted @ 2011-10-01 15:16 Lunaa 阅读(242) 评论(0) 推荐(0) 编辑
摘要:分类: Erlang 2011-05-26 18:13 53人阅读 评论(0)收藏 举报稍微深入研究过一点 java 的同学,恐怕都知道什么叫做 “反编译” 。也就是说,随便拿一个 class 文件,找一个 jad 来,所有的 “智慧结晶” 就全都 “真相大白” 了,跟原先的 source code 相比,区别只是没有注释而已。对于开源软件开发者来说,这本是无所谓的事,但对于商业开发者而言,这简直就是噩梦。在 java 的世界,道高一尺魔高一丈(及其反复迭代)的结果是,这件事最终演变得比较诡异,以至于专门诞生了一个名叫 “代码混淆” 的产业。在我上一次关注的时候,这个领域的最新进展是可以 “混 阅读全文
posted @ 2011-10-01 14:36 Lunaa 阅读(163) 评论(0) 推荐(0) 编辑
摘要:分类: Erlang 2011-05-26 18:13 53人阅读 评论(0)收藏 举报稍微深入研究过一点 java 的同学,恐怕都知道什么叫做 “反编译” 。也就是说,随便拿一个 class 文件,找一个 jad 来,所有的 “智慧结晶” 就全都 “真相大白” 了,跟原先的 source code 相比,区别只是没有注释而已。对于开源软件开发者来说,这本是无所谓的事,但对于商业开发者而言,这简直就是噩梦。在 java 的世界,道高一尺魔高一丈(及其反复迭代)的结果是,这件事最终演变得比较诡异,以至于专门诞生了一个名叫 “代码混淆” 的产业。在我上一次关注的时候,这个领域的最新进展是可以 “混 阅读全文
posted @ 2011-10-01 14:36 Lunaa 阅读(197) 评论(0) 推荐(0) 编辑
摘要:java反编译工具jad2008-03-06 18:01http://www.kpdus.com/jad.html 官方最新版本,支持jdk1.6Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 点击下载 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。 c:/Java/>jad example1.class c:/Java/>jad *.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.Java即得源文件。 阅读全文
posted @ 2011-10-01 14:32 Lunaa 阅读(215) 评论(0) 推荐(0) 编辑
摘要:java反编译工具jad2008-03-06 18:01http://www.kpdus.com/jad.html 官方最新版本,支持jdk1.6Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 点击下载 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。 c:/Java/>jad example1.class c:/Java/>jad *.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.Java即得源文件。 阅读全文
posted @ 2011-10-01 14:32 Lunaa 阅读(90) 评论(0) 推荐(0) 编辑
摘要:初学erlang时总觉得它原本应是健壮的,但一想任何编程语言都会因为人为的失误造成崩溃,以下是在chinaerlang上看到的: 1. 耗尽atom 因为atom是不会被垃圾回收的,所以如何程序运行时生成太多的atom,(例如在无穷循环里,每次循环都调用几下 list_to_atom),atom table会被塞满,然后erlang就当掉了2。进程的耗尽 如果你spawn了太多unlink的不会终止的进程,而且这些进程你都不保存它们的Pid,这样你就失去了和这些进程的联系(和引用),这可以看成是进程泄漏,(有点像内存泄漏),随着越来越多的进程泄漏。。。,然后erlang就当掉了3。洪泛消息到一 阅读全文
posted @ 2011-10-01 14:17 Lunaa 阅读(100) 评论(0) 推荐(0) 编辑
摘要:初学erlang时总觉得它原本应是健壮的,但一想任何编程语言都会因为人为的失误造成崩溃,以下是在chinaerlang上看到的: 1. 耗尽atom 因为atom是不会被垃圾回收的,所以如何程序运行时生成太多的atom,(例如在无穷循环里,每次循环都调用几下 list_to_atom),atom table会被塞满,然后erlang就当掉了2。进程的耗尽 如果你spawn了太多unlink的不会终止的进程,而且这些进程你都不保存它们的Pid,这样你就失去了和这些进程的联系(和引用),这可以看成是进程泄漏,(有点像内存泄漏),随着越来越多的进程泄漏。。。,然后erlang就当掉了3。洪泛消息到一 阅读全文
posted @ 2011-10-01 14:17 Lunaa 阅读(78) 评论(0) 推荐(0) 编辑
摘要:Side-by-side assemblyFrom Wikipedia, the free encyclopediaJump to: navigation, search Side-by-side technology is a standard for executable files in Microsoft Windows XP and later versions that attempts to reduce DLL hell. Side-by-side technology is also known as WinSxS orSxS. Executables that includ 阅读全文
posted @ 2011-10-01 12:57 Lunaa 阅读(123) 评论(0) 推荐(0) 编辑
摘要:Side-by-side assemblyFrom Wikipedia, the free encyclopediaJump to: navigation, search Side-by-side technology is a standard for executable files in Microsoft Windows XP and later versions that attempts to reduce DLL hell. Side-by-side technology is also known as WinSxS orSxS. Executables that includ 阅读全文
posted @ 2011-10-01 12:57 Lunaa 阅读(117) 评论(0) 推荐(0) 编辑