自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

K946的博客

A_littleK

  • 博客(17)
  • 收藏
  • 关注

原创 C++ 代码优化

1.内联: 1.编译器更倾向于将小的或者只调用一次的函数内联,因为其他的内联会让函数变得很大 优点: 1.清除传参、返回的开销 2.代码更连续提高cache率 3.如果内联函数只被调用了一次,那么内联能降低代码的内存占用 2.常量折叠(folding)与传播(propagation): 1. 折叠:代码中的b + 2.0/3.0 编译后会变成 b + 0....

2022-02-15 17:36:43 716

原创 [C++ 代码优化, 读书笔记] 程序中的优化点

3.6 动态链接与和位置无关代码 1. 静态链接比动态链接更快,因为省去了在运行时搜索函数的时间。。详情在150页 2. 位置无关代码出现UNIX或者Mac系统中,它们和共享对象有关,也比较耗时。。详情在155页 3.7 文件访问 1. 如果电脑有杀毒软件,那么文件访问会更加耗时,因为杀软会扫描所有的文件访问 2. 顺序访问文件的内容比随机访问文件的内容更快(好像和缓存有关) 3. 一次读取大块文件比一次读取几个字节更快(?原因未知) 4. 将...

2021-12-24 19:54:34 749

原创 Android CMAKE 编译so链接另一个so

CMake: #根据编译的位选择库目录if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") set (EXTRA_LIBS_DIR ${EXTRA_LIBS_DIR} ${lib}/Curl/armeabi-v7a) else() set (EXTRA_LIBS_DIR ${EXTRA_LIBS_DIR} ${lib}/Curl/arm64-v8a)endif()link_directories(${EXTRA_LIBS_DIR}) ##包含.

2021-09-27 10:22:08 441

原创 Mac替换应用程序dylib,提示DllNotFoundException

/*查找依赖*/otool -L libMylib.dylib /*改变依赖 libOtherlib.dylib -》 @executable_path/libOtherlib.dylib*/install_name_tool -change libOtherlib.dylib @executable_path/libOtherlib.dylib libMylib.dylib/*改变对自己的依赖,这个挺重要的,貌似决定了去那里找当前引用的库*/install_name_tool -id @e...

2020-12-07 16:09:39 561

原创 QThread 安全退出

int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QThread * t = new QThread(); t->moveToThread(t); t->connect(t, &QThread::started, t, [=] { QTimer * time = new QTimer(t); time->connect(time, &QTimer::timeo.

2020-10-13 20:11:43 3426

原创 STL——vector解析

1.vector的实现原理 表面上,vector是不定长数组,其实不定长是一个通过复制移动内存制造出的假象。实际上,vector是定长的,不定长的实现是在原来的数组容量不足时,通过将原来数组的内容移动到更大的数组而实现的不定长假象,移动之后,小数组占用的内存将会被回收。 如果在每次新增元素的时候都扩充空间并移动内存,插入操作会花费大量时间,因此vec...

2020-09-09 23:29:37 273

原创 OllyDbg调试器-动态调试

调试方式OD有2种调试方式选择: 第一种是“File”->"Open"打开选择一个未运行的程序进行调试 第二种是“File”->"attach"附加到一个正在运行的程序进行调试调试时常用快捷键F7 单步步进,遇到 call 会进入 F8 单步步过,遇到 call 不会进入 F2 设置断点 F9 运行程序,直到遇到断点 Ct...

2020-04-01 21:14:15 1051

原创 超简C++11 线程池

线程池的作用:和内存池一样,减少内核态与用户态之间的切换用C++11新特性实现的超简版线程池:#include<thread>#include<mutex>#include<condition_variable>#include<vector>#include<future>#include<queue>...

2019-11-25 16:37:35 220

原创 c++实现内存池并应用到STL容器

内存池: 为了节省申请小块内存与释放小块内存时的开销,可以使用内存池,开始时根据需要申请一片较大的内存,在申请小块内存的时候从内存池中获取,在释放小块内存时,将内存放回内存池内存池中的内存块: 块的大小可以由内存池的编写者确定,一般为8的倍数:8,16,24,32,.....,128;单位为字节,相同大小的块通过指针串成一串(和单链表一样)内存池的两个部分:...

2019-10-26 20:07:08 400

原创 重写STL中的vector的内存配置器

Vector在创建时接受的参数在c++STL中,容器类vector实际上在创建时可以接收两个参数,第一个是存储的元素的类型,第二个是内存配置器,第二个参数有默认值,但我们可以覆盖这个默认值,但是默认值的覆盖需要遵守一些规则,而这些规则则是本文的要讲述的。创建时添加第二参数:std::vector<int, my::allocator<int>> iv; //创建一个...

2019-10-19 16:22:06 523

原创 STRUTS2 web.xml配置 无法访问

1.关闭服务器软件(tomcat等)2.将项目下的WEB-INF删除3.打开服务器软件,测试能否正确连接服务器4.关闭服务器软件,将删除的WEB-INF放回(或者新建WEB-INF, 重新配置web.xml)5.打开服务器软件,测试STRUTS2项目能否访问,如果还是不行从1开始,到第四步的时候选择括号里的方法,如果还是不行那就,看看web.xml是不是配置出错了,如果没有出错就想...

2018-11-11 21:35:51 609

原创 JSP 连接 Mysql数据库全过程 Tomcat(没有ECLIPSE,MYECLIPSE)

下载MysqlMysql官网下载 MySQL Community Server:https://dev.mysql.com/downloads/mysql/ ,这里作者下的是 MySQL Community Server 5.6  windows版的,大概330M的大小还要下载 mysql-connector-java-5.1.47-bin :https://dev.mysql.com/d...

2018-10-25 18:25:16 226

原创 MSVCP100.dll 丢失

https://www.microsoft.com搜索VC++ 2010 下载 Download Microsoft Visual C++ 2010 Redistributable 32位系统下载x8664位系统下载x64

2018-10-23 11:17:57 4115

原创 基础文本分析项目

文本分析概述  文本分析常应用于:翻译,搜索引擎,文章推荐,人物-事物-事件关系图,智能输入法等领域因此文本分析通常是作为一些项目的子项目来进行的文本分析包含很多内容如:分词,分类,错别字纠正,输入预测等需求分析【功能需求】对于分词:算法以一段文本作为输入,算法输出分词后的文本,如:输入"基础文本分析项目"  算法会输出"基础/文本/分析/项目"对于分类:算法以一段文本...

2018-10-17 19:53:07 619

原创 python中使用naiveBayesClassifier出现Not ExceptionNotSeen错误

解决方案:   去到naiveBayesClassifier包中,根据错误提示打开相应的py文件,将from ExceptionNotSeen import NotSeen 换成from naiveBayesClassifier.ExceptionNotSeen import NotSeen ...

2018-09-07 20:27:11 644

原创 《Ruminations on C++》定义类时的核查表

当定义一个类时需要做的一些检查:1.是否需要构造函数? 大多数类都需要构造函数,只有一些简单的类——结构就是它们的接口,这时就不需要构造函数2.是否将数据成员声明为私有?数据成员最好声明为私有,当对数据成员进行引用或修改时,最好是通成员函数。如果没有通过成员函数设置数据成员,则如果数据成员是由用户直接设置的变量,则无法马上检测到用户所作的改变3.是否需要

2017-09-23 13:27:38 191

转载 《Ruminations on c++》c++ 和 c 的一些区别

对于c++和c编写同一个程序时,二者所存在的一些细微差别:1.c中的函数不是内联的,因此当跟踪关闭时,它还保持着函数调用的开销,而在c++中,成员函数定义在类自身的定义内,c++会内联扩展它们,因此,只要成员函数不做任何事,在重新编译时,就可以有效的关闭他们2.当为了完成一项任务而需要写几个函数(方法)时,c所写的函数的函数名都是全局名字,而c++所写的只有类名

2017-09-22 20:36:02 345

空空如也

空空如也

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

TA关注的人

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