- 博客(159)
- 资源 (1)
- 收藏
- 关注
转载 memcached简介及java使用方法
一、 概念Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、 适用场合1. 分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。2. 数据库前段缓存。数据库常常是网站系统的瓶颈。数据库的大并发量访问,常常造成网站内存溢出。当然
2014-08-15 17:22:46
175
转载 SQLite入门与分析(七)---浅谈SQLite的虚拟机
写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久。最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。由于在这里主要讨论SQLite的虚拟机,不打算
2013-12-03 17:04:38
239
转载 SQLite入门与分析(六)---再谈SQLite的锁
写在前面:SQLite封锁机制的实现需要底层文件系统的支持,不管是Linux,还是Windows,都提供了文件锁的机制,而这为SQLite提供了强大的支持。本节就来谈谈SQLite使用到的文件锁——主要基于Linux和Windows平台。 Linux的文件锁Linux 支持的文件锁技术主要包括建议锁(advisory lock)和强制锁(mandatory lock)这两种。此
2013-12-03 17:03:48
241
转载 SQLite入门与分析(五)---Page Cache之并发控制
写在前面:本节主要谈谈SQLite的锁机制,SQLite是基于锁来实现并发控制的,所以本节的内容实际上是属于事务处理的,但是SQLite的锁机制实现非常的简单而巧妙,所以在这里单独讨论一下。如果真正理解了它,对整个事务的实现也就理解了。而要真正理解SQLite的锁机制,最好方法就是阅读SQLite的源码,所以在阅读本文时,最好能结合源码。SQLite的锁机制很巧妙,尽管在本节中的源码中,我写了很多
2013-12-03 17:03:07
179
转载 SQLite Version3.3.6源代码文件结构
Version 3.3.6源代码文件结构 ——整理:hustcat 2009-2-19文件名称大小byte备注API部分main.c35414SQLite Library的大部分接口
2013-12-03 17:02:14
206
转载 SQLite入门与分析(四)---Page Cache之事务处理(3)
写在前面:由于内容较多,所以断续没有写完的内容。11、删除日志文件(Deleting The Rollback Journal)一旦更改写入设备,日志文件将会被删除,这是事务真正提交的时刻。如果在这之前系统发生崩溃,就会进行恢复处理,使得数据库和没发生改变一样;如果在这之后系统发生崩溃,表明所有的更改都已经写入磁盘。SQLite就是根据日志存在情况决定是否对数据库进行恢复处理。删除
2013-12-03 17:01:28
142
转载 SQLite入门与分析(四)---Page Cache之事务处理(2)
写在前面:个人认为pager层是SQLite实现最为核心的模块,它具有四大功能:I/O,页面缓存,并发控制和日志恢复。而这些功能不仅是上层Btree的基础,而且对系统的性能和健壮性有关至关重要的影响。其中并发控制和日志恢复是事务处理实现的基础。SQLite并发控制的机制非常简单——封锁机制;别外,它的查询优化机制也非常简单——基于索引。这一切使得整个SQLite的实现变得简单,SQLite变得很小
2013-12-03 17:00:48
162
转载 SQLite入门与分析(四)---Page Cache之事务处理(1)
写在前面:从本章开始,将对SQLite的每个模块进行讨论。讨论的顺序按照我阅读SQLite的顺序来进行,由于项目的需要,以及时间关系,不能给出一个完整的计划,但是我会先讨论我认为比较重要的内容。本节讨论SQLite的事务处理技术,事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复,由于内容较多,分为两节。好了,下面进入正题。 本节通过一个具体的例子来分析
2013-12-03 17:00:08
169
转载 SQLite入门与分析(三)---内核概述(2)
写在前面:本节是前一节内容的后续部分,这两节都是从全局的角度SQLite内核各个模块的设计和功能。只有从全局上把握SQLite,才会更容易的理解SQLite的实现。SQLite采用了层次化,模块化的设计,而这些使得它的可扩展性和可移植性非常强。而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义。好了,下面我们开始讨论SQLite剩余的两部分:Back-e
2013-12-03 16:59:26
144
转载 SQLite入门与分析(三)---内核概述(1)
写在前面:从本章开始,我们开始进入SQLite的内核。为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要。SQLite的内核实现不是很难,但是也不是很简单。总的来说分为三个部分,本章主要讨论虚拟机(Virtual Machine),但是这里只是从原理上概述,不会太多的涉及实际代码。但是概述完内核之后会仔细讨论源代码的。好了,下面我们来讨论虚拟机(VM)。
2013-12-03 16:58:41
303
转载 SQLite入门与分析(二)---设计与概念(续)
写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim Gray(曾任职微软)就是因为在事务处理方面的成就而获得这一殊荣,正是因为他,才使得OLTP系统在随后直到今天大行其道.关于事务处理技术,涉及到很多,随便就能写一本书.在这里我只讨论SQLite事务实现的一些原理,SQLite的事务实现与大型通用的DBMS相
2013-12-03 16:57:55
155
转载 SQLite入门与分析(二)---设计与概念
写在前面:谢谢各位的关注,没想到会有这么多人关注。高兴的同时,也感到压力,因为我接触SQLite也就几天,也没在实际开发中用过,只是最近项目的需求才来研究它,所以我很担心自己的文章是否会有错误,误导别人。但是我很想把自己的学习成果与大家分享,所以如果大家觉得我有不对的地方,望不吝赐教。我原打算直接从VDBE入手的,因为它起着承上启下的作用,是整个SQLite的核心,并分析源码,但考虑到这是一个
2013-12-03 16:57:17
141
转载 SQLite入门与分析(一)---简介
写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。1、SQLite介绍自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它
2013-12-03 16:56:22
175
转载 Delphi SQLite 上手指南
Delphi SQLite 上手指南SQLite下载http://www.sqlite.org/download.htmlSQLite FAQhttp://www.sqlitecn.org/faq.htmlSQLite中文论坛http://sqlite.com.cn/bbs/index.aspSQLite入门与分析http://www.cnb
2013-12-03 16:42:34
291
转载 sqlite与delphi
之前在公司中编写了一个webservice服务,通过调用服务,才能继续后续操作其中webservice中自己做了cookie的保存以及session的处理,当时的session是通过hash存储的,但是后来在并发测试中发现会出现有hash是找不到的,后来在网上查了资料才知道是由于webmoudle的处理导致的创建了多个hash,最红找错了对象导致的,后来将hash完全存储为一个唯一的对象,解决了这
2013-12-03 16:28:41
367
转载 Web前端优化最佳实践及工具集锦
Web前端优化最佳实践及工具集锦发表于15小时前| 3257次阅读| 来源Googe & Yahoo| 25 条评论| 作者王果 编译Web优化Google雅虎PageSpeedYSlow摘要:前端的性能对于Web应用的用户体验来说非常重要。不要以为你的Web应用的性能已经足够好了,其实还会有很多可以提升的地方。本文将介绍Google和雅虎关于前端优化的最佳实践
2013-09-24 11:24:26
245
转载 互联网系统架构的演进
摘要:多终端接入、开放平台给互联网带来了前所未有的用户数量和访问规模,信息之多、传播速度之快,是传统网站难以想象的。本文将从发展演进的角度,解读高性能互联网系统架构。多终端接入、开放平台给互联网带来了前所未有的用户量级和访问规模,SNS网站产生了海量的UGC(用户产生内容),而且这些内容依托关 系链扩散速度之快、传播范围之广是传统网站难以想象的,海量数据的计算存储也一直是近年互联网领域
2013-09-18 14:19:05
218
转载 @60个开发者不容错过的免费资源库
文章作者Juan Pablo Sarmiento收集了60个较为实用、高效的工具资源库,可以帮助开发者快速创建各种Web App和移动App。这些资源的特点是:简单、便捷、免费、高效、功能多。当你独自一人需要在短期内构建一个产品的时候,这些起关键作用的工具定会给你留下更深刻的印象。(以下是编译内容)下面所列举的就是近期比较受欢迎的资源集合:1、Mmenu:这个jQuery插件能够为
2013-08-29 13:10:42
256
转载 Oracle 发送邮件
调用执行代码begin procsendemail('hello', '新的邮件1', 'jhtchina@163.com', 'jhtchina@163.com', 'smtp.163.com',
2013-08-28 10:37:48
209
转载 在Win7下配置Android开发环境
在Win7下配置Android开发环境2011-09-14 17:24 蝈蝈俊.net 互联网 我要评论(0) 字号:T | T在Win7下配置Android开发环境是本文要介绍的内容,主要是来了解并学习Android开发环境,具体关于Android开发环境的详解来看本文。AD: 2013云计算架构师峰会超低价抢票中在Win7
2013-08-27 11:46:37
246
转载 AQTime教程
1 简介AQTime和MemProof都是AutomatedQA旗下的产品,AQTime比MemProof提供了更丰富强大的功能。该产品含有完整的性能和调试工具集,能够收集程序运行时关键的性能信息和内存/资源分配信息,并提交概要报告和详细报告,还提供所有的程序优化处理工具,囊括了自定义过滤器、图形化的调用层次结构一直到源代码浏览等内容。AQTime的特色在于它不仅是一款调试工具,还是一款性
2013-05-24 11:36:04
248
转载 DataSnap 2009 系列之二 (方法篇)
(方法篇) 在过去客户端要调用远程服务器的方法需要通过在TLB里添加接口并且在服务器对象中实现,在DataSnap 2009中调用远程服务器的方法是基于delphi的RTTI机制的,想要一个类允许被远程调用需要做以下两点: 1.把该类和DSServerClass连接在一起 注意:DSServerClass必须设置要导出的类 否则会出现SOnGetClass
2013-05-21 09:31:40
205
转载 DataSnap 2009 系列之三 (生命周期篇)
(生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置,当DSServer启动时从 DSServerClass组件读取LifeCycle属性的值。 注意:LifeCycle的值由于在启动时就已经读取 启动后再修改LifeCycle的值将没有任何效果,LifeCycle属性的值可以是以下三种字符串之一。 1.Sess
2013-05-21 09:30:31
196
转载 Delphi2010中DataSnap高级技术(2)—DataSnap服务端和客户端发布分发方法
这几天继续研究DataSnap技术。针对服务器和客户端软件,如何发布呢?经过研究发现,分发方法非常简单!服务器发布方法:1.在unit ServerMethodsUnit1单元中,添加uses MidasLib;(添加MidasLib的目的是省去发布Midas.dll)2.我用的是火鸟数据库,只需拷贝dbxfb.dll和fbclient.dll分发的服务器软
2013-05-21 09:26:19
221
转载 Delphi2010中DataSnap高级技术(1)—为DataSnap系统服务程序添加描述
这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了。 DataSnap有三种服务模式,其中Service Application方式建立的windows服务没有描述,描述部分是空的,感觉总是欠缺点什么。 现找到办法添加描述: procedure TServerContainer2.ServiceAfterInstall(Sender
2013-05-21 09:25:39
246
转载 Delphi2010中DataSnap高级技术(3)—DataSnap服务器如何得到客户端的IP和端口
作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端的网络基本信息,比如客户端IP和端口。有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接、限制功能等等。在delphi2010中的datasnap服务器如何获得客户端ip,的确花了我点时间,奇怪为什么这个功能不做的更人性化点呢,功能总是藏着掖着。还得让程序员像寻宝一样摸索,浪费时间。现在把我整理的结果奉
2013-05-21 09:23:47
173
转载 Delphi2010中DataSnap高级技术(4)—TCP keepAlive和KeepAliveInterval参数详解
Delphi2010中DataSnap,如果客户端异常掉线或拔掉网线,那么在服务端会留下一个TCP连接,这个连接会变成死连接(经过测试,如果windows的TCP保持连接禁用的话,三个小时该死连接还不消失)。如果大量客户端并发,出现的死TCP连接过多,服务器内存和端口将会增加,直到占满服务器的端口和耗尽内存为止。如果这样的话,服务器无法健壮稳定的运行。大家可以另开线程来监控客户端连接,但是
2013-05-21 09:23:16
214
转载 Delphi2010中DataSnap高级技术(5)—建立稳定服务程序之TCP心跳包的使用
为了能让我们的服务程序更加稳定,有些细节问题必须解决。就如上一讲中提到的客户端拔掉网线,造成服务器上TCP变成死连接,如果死连接数量过多,对服务器能长期稳定运行是一个巨大的威胁。另外,经过测试,如果服务器上有TCP死连接,那么服务程序连接数据库,也会产生那个一个死连接。这样的话,给数据库服务器也造成威胁。所以,服务器程序编写的好坏,直接影响系统的稳定性!如何解决TCP死连接的问题,
2013-05-21 09:22:41
224
转载 Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力
1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的。如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机。如何限制访问者的数量呢?我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉。2)限制了访问数量,但是如果不做密码身份认证,无关的人员也将能登陆服务器!解决办法是客户端传入用户名和密码,如果用户名和密码不正确
2013-05-21 09:22:05
272
转载 Delphi2010中DataSnap高级技术(7)—TDSServerClass中Lifecycle生命周期三种属性说明
Lifecycle 三种属性: Session、Invocation、Server这三种属性都用在什么情况,有什么要注意的事项,Delphi2010中罕有说明。如果乱用这三种属性,你的服务程序有可能崩溃,数据混乱,内存占用大,效率低等问题!下面我对这三种属性的使用环境逐一介绍:1. Session说明:这是delphi2010中默认属性,也是delphi推荐
2013-05-21 09:21:30
220
转载 Delphi2010中DataSnap高级技术(3)—DataSnap服务器如何得到客户端的IP和端口
作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端的网络基本信息,比如客户端IP和端口。有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接、限制功能等等。在delphi2010中的datasnap服务器如何获得客户端ip,的确花了我点时间,奇怪为什么这个功能不做的更人性化点呢,功能总是藏着掖着。还得让程序员像寻宝一样摸索,浪费时间。现在把我整理的结果奉
2013-05-21 09:01:01
208
原创 关于Packages包的中 rebuild as needed 与 explicit rebuild 的说明
原因,你的EhLib60包选项build control设置了rebuild as needed(always-build),而你的pkgFormBaseClass包却是explicit rebuild(never build)的,always-build就是告诉Delphi,喂,这个包的代码是经常改变的,你记准咯,以后有其他需要(require)它的包要编译时,你要重新编译这个包哦
2013-05-08 10:38:51
457
原创 DelphiXE下的内存管理
自Delphi2007开始使用了FastMM作为内存管理器,替代了原有的颇受诟病的自带内存管理。使用也非常方便,只要在工程文件的源码里使用下面的一行代码即可。ReportMemoryLeaksOnShutdown := True;当程序关闭时,会自动检测内存泄露,并弹出提示框。FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内
2013-05-08 10:05:59
219
转载 FastMM 定位内存泄露的代码位置
FastMM 定位内存泄露的代码位置开源的FastMM,使用很简单,在工程的第一行引用FastMM4即可(注意,一定要在第一个Uses的位置),可以在调试程序时提示内存泄露情况,还可以生成报告。在Delphi2007以后版本中,使用更加简单,只需要在工程开始的位置加上语句:ReportMemoryLeaksOnShutdown := True;就可以了,并且在运行时不会出现提示。如果想
2013-05-08 10:04:31
226
转载 FastMM使用详解
FastMM使用详解一、引言 FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用,就连 Borland 也在delphi2007抛弃了自己原有的饱受指责的内存管理器,改用FastMM. 但是,内存管理的复杂性以及缺乏 FastMM 中文文档导致国内许多人在使用时遇到了许多问题,一些人因此而放弃了使用,我在最
2013-05-08 10:03:53
239
原创 FastMM配置文件详解
FastMM最新版本提供了中文语言包,可方便国内使用。下载地址为http://sourceforge.net/projects/fastmm/配置文件为:FastMM4Options.inc,中文详细配置方法如下: {Fast Memory Manager: 选项配置文件在这里为FastMM设置默认选项FastMM 4.84
2013-05-08 10:02:57
201
转载 一套较完整的技术框架
一套较完整的技术框架转载自http://blog.youkuaiyun.com/phenixiii/article/month/2007/111 引言1.1 前言本文将基于目前现有的软件开发架构(以下简称‘架构’)(Packer for Delphi),同时如何合理地引进新技术等问题,进行系统地分析和研究,以指导新架构的研发。1.2 研发依据1.2.1 公司发展
2013-05-08 09:59:48
332
转载 一套较完整的技术框架
一套较完整的技术框架转载自http://blog.youkuaiyun.com/phenixiii/article/month/2007/111 引言1.1 前言本文将基于目前现有的软件开发架构(以下简称‘架构’)(Packer for Delphi),同时如何合理地引进新技术等问题,进行系统地分析和研究,以指导新架构的研发。1.2 研发依据1.2.1 公司发展
2013-05-08 09:58:35
366
转载 Delphi单元文件之-简体繁体互转
Function GBCht2Chs(GBStr: String): AnsiString; {GBK繁体转简体}Var len:integer; pGBCHTChar: PChar; pGBCHSChar: PChar;Begin pGBCHTChar := PChar(GBStr); Len := SizeOf(pGBCHTChar); GetMem
2013-05-08 09:55:04
184
转载 Delphi单元文件之-防止程序重复执行
//工程引用此单元就能防止同时出现多个实例unit MultInst;interfaceuses Windows ,Messages, SysUtils, Classes, Forms;implementationconst STR_UNIQUE = '{2BE6D96E-827F-4BF9-B33E-8740412CDE96}'; MI_AC
2013-05-08 09:54:31
207
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人