- 博客(67)
- 资源 (7)
- 收藏
- 关注
转载 从stl::string的实现讨论开去,关于性能你了解多少?
发现一篇好帖子,大家讨论热火朝天,下面的摘录是大佬的发言,大家可以看看:帖子的地址:http://bbs.chinaunix.net/thread-1230142-1-1.html 1、stl内存池有很多种实现,目标是尽量优化小对象的内存分配;你的数据显然没有真正反映gcc的内部实现,建议自己看看源码。2、请注意,string是一个type
2011-10-20 08:54:01
926
从stl::string的实现及性能讨论开去,关于性能...
发现一篇好帖子 1、stl内存池有很多种实现,目标是尽量优化小对象的内存分配;你的数据显然没有真正反映gcc的内部实现,建议自己看看源码。2、请注意,string是一个typedef;它是basic_string的一个特化版。 basic_string的最后一个模板化参数用于指定内存池;默认内存池一般是全局公用的。 另外,不
2011-10-20 08:50:37
352
原创 学习CoreDump
什么是Core Dump? Core的意思是内存, Dump的意思是扔出来, 堆出来. 开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件
2011-10-19 13:57:42
239
转载 当析构函数遇到多线程 ── C++ 中线程安全的对象回调
陈硕 (giantchen_AT_gmail)本文 PDF 下载: http://www.cppblog.com/Files/Solstice/dtor_meets_mt.pdf摘要编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身
2011-10-19 12:28:29
956
转载 JNI编程注意事项
整理项目文档时, 忽然发现当年的一篇以前公司里关于JNI编程 的标准化文档。做为收藏,就贴在这里吧。注:关于JNI, 现在好像有一个OpenSource项目jace可以帮助进行JNI的开发。另外, 推荐IBM Developerworks网站上的一个教程《用jni进行java编程》JNI编程注意事项:1、 JNI的函数声明:JNI函数声明方法为JAVA_PackageName_C
2009-10-15 22:58:00
4877
转载 较详细的介绍JNI
JNI其实是Java Native Interface的简称,也就是java本地接口。它提供了若干的API实现了和Java和其他语言的通信(主要是C&C++)。也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢? 你的J
2009-10-15 22:55:00
82729
1
转载 javap简介
也许我们很少会使用到javap工具,因为现在有很多好的反编译工具,但是我在此介绍这个工具不是使用它进行反编译,而是查看java编译器为我们生成的字节码,通过比较字节码和源代码,我们可以发现很多的问题,一个很重要的作用就是了解很多编译器内部的工作机制,在笔者以前的几篇文章中就是借助此工具的,本站有这些文章的原文《深入剖析java类的构造方式》和《使用String还是StringBuffer》。下面我
2009-10-15 22:53:00
1542
转载 JNI调用Java方法
JNI调用Java方法 JNI 调用java类的方法与反射代码类似。先得到object的类。-->jobject obj;jclass cls = env->GetObjectClass(obj);然后查找方法:jmethodID mgetZoom = env->GetMethodID(cls,"getZoom","()I");jmethodID g
2009-10-15 22:49:00
7291
转载 jna调用windows api
在我接触JNA之前一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用,于是下回来按网站上的例子试试了 还不错,因此还有点兴趣了,于是又自己写了 2个发挥了一下。GetLogicalDriveStringsA【获取本地系统逻辑盘符】GetSystemDirectoryA 【获取系统目录】public interface Ker
2009-10-09 23:36:00
1692
原创 jnative实现调用动态库(2)
2007-07-25 20:33简单测试,Javadoc 下和官方网上有些例子,下面的是我随便从IC读卡程序中找了个DLL进行的测试:SCReader.dll 下的SCHelp_HexStringToBytes()函数原型SCREADER_API WINAPI long SCHelp_HexStringToBytes(LPCTSTR pSrc,BYTE* pTa
2009-10-09 23:33:00
1415
2
转载 jnative实现调用动态库(1)
2007-07-25 20:25由于项目要求,需要用Java调用windows的dll文件,查了一下,如果用JNI的话是比较麻烦的,在sourceforge.net上搜索了一下“Java dll”,首先出现的是Jnative,于是决定用它,后来也试了些别的,但还是JNative好使,简单总结如下:Java调用动态库所需要关心的问题:l 如何装载dll文件
2009-10-09 23:25:00
2058
转载 jni终结者jna
介绍给大家介绍一个最新的访问本机代码的Java框架—JNA。JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。JNA项目地址:https://jna.dev.java.net/ 非常强大、易用,功能上类似与.NET的P/Invoke。 不堪回首的JNI我们知道,使用JNI调
2009-10-09 23:22:00
1469
转载 Java本地方法封装库 JNA
JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。下面是一段使用该工具的示例代码:packag
2009-10-09 23:20:00
865
转载 Jnative callback函数实现
jnative 1.3.2版本发布了,可以完美支持C回调函数。不过令我很恼火的是还不支持activex dll的调用,问了jnative的作者,他说会在jnative 后继版本支持,大家期待吧!不然要用jacob,在一个项目里面用两种技术,我想任何人都不愿意这样做。 首先定义一个回调类模板:Java代码 <a title="复制代码" onclick="function o
2009-10-09 23:12:00
2811
转载 jni编程进阶
JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,JNI技术的出现主要是基于三个方面的应用需求: 1. 解决性能问题Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支持者们为提高
2009-10-09 23:10:00
989
原创 如何操纵JNI之JObject
get string member from your class const char *strdata; strdata = (*env)->GetStringUTFChars(env, (jstring)((*env)->GetObjectField(env,in_request, jfid)),NULL
2009-10-08 14:42:00
3582
转载 详解“InnoDB”和“MyISAM”的不同之处
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 MyIASM是IASM表的新版本,有如下扩展: ·二进制层
2009-09-22 22:16:00
571
转载 Mysql中找不到.myd文件的问题
Wordpress用了这么长时间,偶尔会想起来备份下数据,上次是用wp的xml,这次把自己机器的环境配的跟主机提供商基本一样了,正好那边有mysql数据库打包备份的服务,就尝试了一下。可不管我下载哪个时间点的备份包,里面都只有wp表的10个frm文件,copy到我的数据库目录后访问web,没有任何数据!直接搞不懂了。以前觉得用mysql最大的方便就是数据库文件可以直接复制粘贴,后来就推荐周围的人都
2009-09-22 22:15:00
2230
转载 了解MySQl数据库目录
数据库目录是MySQL数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和MySQL的服务器选项文件。不同的分发,数据库目录的缺省位置是不同的。 数据目录的位置缺省的数据库位置缺省数据库的位置编译在服务器中。◆如果您是在一个源程序分发包中安装 MySQL,典型的缺省位置可能是 /usr/local/var;◆如果在二进制分发包中安装 MySQL,则为 /usr/local/mys
2009-09-22 21:53:00
647
转载 sqlite应用场景
★如何权衡? 当你在权衡某个场合是否应该使用SQLite时,(在技术层面)至少要考虑如下几点: ◇能否发挥SQLite的某些特长? ◇是否还有其它的替代方案? ◇是否有啥潜在的技术风险? 想清楚上述问题之后,再做出决策。 ★SQLite的特点 关于SQLite的特长,在上次的帖子中已经介绍过了。考虑到某些同学比较健忘,咱再回顾一下: ◇文件型数据库,且只有单一数据文件 ◇轻量级
2009-09-22 08:01:00
1176
1
转载 sqllite查询优化
SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下:一、影响查询性能的因素:1. 对表中行的检索数目,越小越好2. 排序与否。3. 是否要对一个索引。4. 查询语句的形式二
2009-09-22 07:58:00
4571
原创 sqlite使用总结3
(4) 事务处理sqlite 是支持事务处理的。如果你知道你要同步删除很多数据,不仿把它们做成一个统一的事务。通常一次 sqlite3_exec 就是一次事务,如果你要删除1万条数据,sqlite就做了1万次:开始新事务->删除一条数据->提交事务->开始新事务->… 的过程。这个操作是很慢的。因为时间都花在了开始事务、提交事务上。你可以把这些同类操作做成一个
2009-09-22 07:52:00
3195
转载 sqlite使用总结1
前序:... 1 一、 版本... 1 二、 基本编译... 2 三、 SQLITE操作入门... 2 (1) 基本流程... 2 (2) SQL语句操作... 4 (3) 操作二进制... 8 (4) 事务处理... 10 四、 给数据库加密... 10 五、 后记... 25 前序: Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些
2009-09-22 07:51:00
969
转载 sqlite总结2
(2) SQL语句操作本节介绍如何用sqlite 执行标准 sql 语法。 i.1 执行sql语句int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callback, void *, char **errmsg );这就是执行一条 sql 语句的函数。第1个参数不再
2009-09-22 07:51:00
896
转载 事务处理
sqlite 是支持事务处理的。如果你知道你要同步删除很多数据,不仿把它们做成一个统一的事务。通常一次 sqlite3_exec 就是一次事务,如果你要删除1万条数据,sqlite就做了1万次:开始新事务->删除一条数据->提交事务->开始新事务->… 的过程。这个操作是很慢的。因为时间都花在了开始事务、提交事务上。你可以把这些同类操作做成一个事务,这样如果操作错误,还能够回滚事务。事
2009-09-22 07:50:00
425
转载 SQLite的局限性
SQL-92特性方面正如前面提到的,SQLite不支持SQL-92的在很多企业数据库系统中可用的一些特性。如:外键约束(可解析的,但非强制)很多ALTER TABLE特性一些TRIGGER相关的特性RIGHT和FULL OUTER JOIN更新一个VIEWGRANT和REVOKE你可以在SQLite的主页上获取最新信息。http://www.sqlite.org/omitted.htmlh
2009-09-22 07:47:00
651
转载 过35不编程,如何选择你的公司
http://blog.youkuaiyun.com/annicybc/archive/2006/06/09/783244.aspx
2009-09-21 15:15:00
419
原创 一起学习设计模式
http://blog.youkuaiyun.com/byxdaz/archive/2009/08/07/4423938.aspx
2009-09-21 14:36:00
407
原创 两篇文章,一起学习sqlite
http://blog.youkuaiyun.com/zieckey/archive/2006/05/04/707507.aspx http://blog.youkuaiyun.com/bobwu/archive/2009/08/14/4445255.aspx
2009-09-21 14:32:00
488
转载 duibi ceshi
2008/8/13bdb, gdbm, tc, sqlite3 性能测试见图,都是默认编译选项,内存占用情况:bdb 最少, 800 KB 至 1MB 多点,gdbm 稍微多点,1MB 多,sqlite3 3MB 多点,tc 最大,30MB~63MB,感觉是整个弄到内存里操作。 操作:写 50000 条 200 - 4096 字节长度记录,然后逐条读出;
2009-09-21 07:46:00
843
转载 SQLITE速度评测
SQLite 作为一个轻量级嵌入式数据库,还是非常好用的。雨痕极力推荐~~~~~~ 今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟!下面是他发给我的测试代码。我晕~~~~~~ using System.Data;using System.Data.Common;using System.Data.SQLite;// 创建数
2009-09-21 07:39:00
3192
转载 sqlite3数据库的性能问题报告
使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G, 内存:512MB使用整体事务:1000000条记录,需要93秒钟。使用逐个插入提交事务:1秒钟只能处理20条记录。启动程序时把java堆最使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G, 内存:512MB使
2009-09-21 07:36:00
1412
原创 3年
阶段目标:进入高性能计算领域实践工作:分布式网络服务公司(baidu.google.yahoo)个人创业:推出个人搜索引擎。推出高性能并行编程专业网站,包括资料下栽、项目交易、学习讨论。
2009-09-17 16:53:00
152
原创 SQLite多线程写锁文件解决方案
SQLite多线程写锁文件解决方案 在sqlite编程中多线程同时写时会出现异常,我写了个类来解决这个问题。思路很简单,就是在开始写操作时,记下写操作的托管线程id,表示目前有线程正在做写操作;其他线程来写时,需要先检测是否有进程正在做写操作,如果有就需要等待,等待到某一个配置的超时时间时,会抛出异常终止等待;如果没有则直接放行,此线程可以获得写锁。最后写操作执行完毕时需要释放锁。下面
2009-09-17 07:57:00
12033
7
转载 SQLITE的局限性
SQLite和其他大部分现代SQL数据库在基本设计目标上是不同的,它的目标是简单。SQLite遵循这一目标,即使这样偶尔会导致某些特性实现的低效化。下面列举了SQLite的一些缺陷:SQL-92特性方面正如前面提到的,SQLite不支持SQL-92的在很多企业数据库系统中可用的一些特性。如:外键约束(可解析的,但非强制)很多ALTER TABLE特性一些TRIGGER相关的特性RIGHT和
2009-09-17 07:50:00
2822
转载 SQLITE3 使用总结
前序:Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准
2009-09-16 07:36:00
21625
13
原创 Sqlite内存数据库在多线程下的使用问题
sqlite 内存数据库的attach我已经往内存数据库A插入了10W条数据,我现在想把A导入一个物理文件B(具有相同表结构),是不是应该用attach指令?有没有高人详细指点一下?sqlite3_open(":memory:", &db);...ret = sqlite3_exec(db, "CREATE TABLE new_table1 (id integer prima
2009-09-16 07:32:00
4245
1
原创 sqlite内存数据库使用有感
SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;2、在内存中的数据库不能被别的进程访问(因为没名字,以后可能支持),即使在多线程下,也得使用同
2009-09-16 07:28:00
1396
转载 sqlite性能优化
主要通过pragma指令来实现。比如: 空间释放、磁盘同步、Cache大小等。不要打开。前文提高了,Vacuum的效率非常低!PRAGMA auto_vacuum; PRAGMA auto_vacuum = 0 | 1;查询或设置数据库的auto-vacuum标记。正常情况下,当提交一个从数据库中删除数据的事务时,数据库文件不改变大小。未使用的文件页被标记并在以后的添加操作中
2009-09-16 07:26:00
799
windows官方虚拟桌面(msvdm.dll)
2012-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人