自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux bash shell 判断目录是否为空的函数

linux shell中判断目录是否为空#!/bin/sh##方法一 判断输出字符数统计为0is_empty_dir(){ return `ls -A $1|wc -w`}##方法二 判断输出string为空#is_empty_dir(){ #return $[ -z `ls -A $1` ]#}if is_empty_dir $1then echo " $1 is emp

2015-12-29 15:55:43 13214 9

原创 java大量数据加载时resultSetType参数的设置 TYPE_FORWARD_ONLY

这两天的工作是将一1000万条数据库记录(10GB)加载到内存中,加载到500多万条记录的时候,就报了OOM(内存不足)。解决了所有外围问题后,再运行还是这个问题无法加载全部数据。仔细研究了之前从未碰过的底层访问数据库的代码。 在创建PreparedStatement时,resultSetType参数设置的是TYPE_SCROLL_INSENSITIVE或TYPE_SCROLL_SENSITIVE

2015-12-25 18:04:16 13685 1

原创 gcc下使用tcmalloc(gperftools)2.4的注意事项

前几天在折腾将项目代码的编译问题,打算使用tcmalloc内存池来管理内存分配。无意中在pgerftools的说明文档README中看到了这段话: NOTE: When compiling with programs with gcc, that you plan to link with libtcmalloc, it’s safest to pass in the flags

2015-12-25 09:07:12 4733

原创 C++11 gcc升级到5.2.0后报错:/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.17' not found

我的linux操作系统为centos6.5,为了能编译C++11程序,需要对gcc编译器进行升级(centos6.5默认安装的gcc编译器是4.4.7,支持C++11需要至少4.8.1)到gcc5.2.0,参照《【Linux】CentOS6.5 gcc升级方式》对编译器进行了升级,耗时两个多小时。 等编译升级就绪,编译了C++11的代码,运行时,报错: /usr/lib64/libstdc++

2015-12-21 11:53:47 2604

原创 C++11 元编程 判断是否有std::hash<T>特例并提供hash函数通用实现

std::hash的用途std::hash是C++11提供的一元函数模板,用于向标准库提供返回数据类型T哈希值(hash value)的哈希函数(hash function)。 std::hash只是定义了一个一元操作符operator(),接受一个T类型的参数,返回一个size_t类型的哈希值, C++11为所有基本类型(basic types)都提供了特例化实现: C

2015-12-14 11:35:57 5387 1

原创 JUnit4:在测试用例中用FixMethodOrder指定测试方法的执行顺序

我们在写JUnit测试用例时,有时候需要按照定义顺序执行我们的单元测试方法,比如如在测试数据库相关的用例时候要按照测试插入、查询、删除的顺序测试。如果不按照这个顺序测试可能会出现问题,比如删除方法在前面执行,后的方法就都不能通过测试,因为数据已经被清空了。而JUnit测试时默认的顺序是随机的。所以这时就需要有办法要求JUnit在执行测试方法时按照我们指定的顺序来执行。JUnit是通过@FixMeth

2015-12-13 12:44:54 14525 11

原创 C++11 元编程(meta-programming)判断T是否有==操作符

前几天看了《C++11之美》受到一些启发,想到可以通过判断一个类型是否有指定的操作符(比如==,>=)。 基本的原理与文中的差不多,利用SFINAE原则,通过返回类型后置来推断表达式的类型,推断的过程中利用declval,它可以获取类型的右值引用,以便来调用==操作符,这个过程是在编译期完成的。 如果通过==操作符比较declval的右值引用成功了,则会继续推断逗号表达式的类型,最终推断的函数返

2015-12-09 09:43:29 1489 1

原创 C++11 JNI开发中RAII的应用(三)--JavaClassMirror

以下是我以前写的将一个C++对象转成java对象的函数toJCodeBean。static jobject toJCodeBean(JNIEnv* env, const code_bean& bean) { auto code_bean_class =jni_utilits::raii_FindClass_LocalRef("Lnet/gdface/facedbsdk/local/CodeC

2015-12-03 16:56:59 921 1

原创 C++11 JNI开发中RAII的应用(二)--JNI函数封装

在上一节《C++11 JNI开发中RAII的应用(一)》中我们已经有了一些基本的RAII封装工具,本节就简单了,就是根据需要把一些常用的JNIEnv函数封装成更方便使用的模板函数。raii_NewGlobalRefraii_NewGlobalRef函数顾名思义,就是封装JNIEnv::NewGlobalRef,将一个本地引用的jobject转为全局引用封装在raii_var中。 /* 封装JN

2015-12-03 15:41:49 1739 1

原创 C++11 在析构函数中执行lambda表达式(std::function)捕获this指针的陷阱

lambda表达式是C++11最重要也最常用的一个特性之一。lambda来源于函数式编程的概念,也是现代编程语言的一个特点。 关于lambda表达式的概念并不是本文的重点,网上可以找到无数的写得极好的文章介绍它。我想说的是善用lambda表达式,将给C++编程带来极大的便利,这是本人最近学习C++11以来真实深切的感受,但是有时候误用lambda表达式也会给编程带来极大的隐患,本文以最近的经历说明

2015-12-03 09:08:51 8925 1

原创 C++11 JNI开发中RAII的应用(一)--制作基础工具

最近项目C++底层代码写完了,开始做java与底层代码的接口部分,就涉及到JNI编程,我这是第一次写JNI代码,看了很多资料,得到一个印象:JNI开发本身不复杂,但如果操作不慎,很容易造成内存泄露参见《jni 内存泄露》,而且最容易被忽视的就是本地引用(LocalReference)造成的内存泄露。 按照oracle官方对的文档 《Java Native Interface Specificat

2015-12-02 14:27:02 1269

原创 vs2015编译tcmalloc(gperftools2.4)

TcMalloc(Thread-CachingMalloc)是google-perftools工具中的一个内存管理库,所以一般提到tcmalloc,其实就是指使用gperftools,编译tcmalloc也就是编译gperftools。 第一次使用tcmalloc,网上找了好多关于使用tcmalloc的文章,都讲到了如何安装,如何使用,对于编译都是一笔带过。。。但是是真正实战的时候,发现如果对tc

2015-12-01 12:02:28 8761

CMake脚本在ultraedit中的语法高亮支持

资源来自CMake官网: http://www.cmake.org/Wiki/images/5/56/UltraEditWordfile.tar.gz, 但这个链接已经无法访问,从历史快照中找加,上传备份 参见使用方法参见:https://blog.csdn.net/10km/article/details/52368486

2023-06-08

erpcgen-windows-x86_64.zip

用cygwin编译的erpcgen,可以windows下直接通过IDL编译生成client/server端(C++)代码,有cygwin的童鞋也可以自行编译,很方便的。 erpc git仓位置: https://github.com/EmbeddedRPC/erpc

2020-09-17

windows下MSVC兼容的dirent.h

<dirent.h>是一个应用程序接口,主要用于文件系统的目录读取操作,主要提供了几个目录数据读取函数,<dirent.h>是unix系统下常见的接口,但windows平台的MSVC编译器并没有提供这个接口( Cygwin5 and MingW现在已经提供了dirent接口),对于跨平台的项目开发就会带来一些麻烦,如果在MSVC下编译时可能因为windows平台缺少这个接口就要为windows平台另外写一些代码。本资源是从网上找的,提供了windows下为MSVC实现的dirent.h接口实现,方便跨平台开发和移植。

2016-03-31

libb64--base64编码解码库

libb64是实现base64编码解码的开源库,还提供了C++封装,用起来挺方便

2016-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除