自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 UITableView优化

如果tabview要显示100个Cell,当前屏幕显示10个。那么刷新(reload)UITableView时,UITableView会先调用100次tableView:heightForRowAtIndexPath:方法,然后调用10次tableView:cellForRowAtIndexPath:方法;滚动屏幕时,每当Cell滚入屏幕,都会调用一次tableView:heightForRowA

2016-04-03 22:44:41 444

原创 iOS程序优化要点

1. UI方面      正确使用reuseidentifier       尽量让UIView的opaque属性为yes,不透明      避免使用庞大的xib,可以使用storyboard,xib是加载所有的资源。导致程序不是在用的时候再加载      不要在imageview中调整图片大小,可以在background线程中调整完,再显示      使用图层阴影时,尽量使用

2016-04-03 17:17:52 254

转载 利用NSCache提升效率

在ios中,苹果提供了,NSCache类和NSDictionary很相似,提供key,value的存储,不一样的是NSCache在内存吃紧的时候会做自动释放。遇到一个问题是,在使用大量图片的app中,需要从存储里面读取数据,每次都从文件系统里面读取文件会造成卡顿现象。解决办法就是把NSData对象缓存起来,先从NSCache里面读取数据,然后再从文件系统获取数据,提高效率。

2016-04-03 16:43:26 300

转载 NSoperation和GCD的使用场景

GCD是基于c的底层api,NSOperation属于object-c类。ios 首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。相对于GCD:1,NSOperation拥有更多的函数可用,具体查看api。2,在NSOperationQueue中,可以建立各个NSOperation之间的依赖关系。3,有kvo

2016-04-03 16:42:29 844

原创 关于block

block分为 stack block,  global block 和Malloc block全局block一般是指该block没有引用外部变量,arc模式下,一般都是堆上block。当block作为参数传入时,为stack上的block当block被某对象强引用,在该block中使用这个对象的指针时,会导致循环引用,如,该对象的strong成员变量为这个blockgcd中使用sel

2016-03-25 17:16:12 275

转载 细说GCD

文中较详细介绍GCD队列,各种GCD使用方法,实例如何使用Dispatch Source监听系统底层对象,分析不同锁的性能对比,实例GCD死锁情况。文中的Demo在这里https://github.com/ming1016/GCDDemo 对着文章试着来调demo体会更深哦,细细嚼消化好:)GCD(Grand Central Dispatch) 介绍GCD属于系统级的线程管理,在D

2016-03-11 15:11:27 733

转载 ios内存优化

技巧采取的措施消除内存泄露由于内存是iPhone OS的关键资源,所以您的应用程序不应该有任何的内存泄露。存在内存泄露意味着应用程序在之后可能没有足够的内存。您可以用Instruments程序来跟踪代码中的泄露,该程序既可以用于仿真器,也可以用于实际的设备。使资源文件尽可能小文件驻留在磁盘中,但在使用时需要载入内存。属性列

2016-03-09 11:16:05 300

原创 js基础篇

1. js可以在html里面或者单独.js文件,src=foo.js2.标签里面如果需要使用html标签,需要放在docment.write('');3.var定义的是局部变量,没有定义的是全局4.类型  String  Number  Boolean  Undefined:未赋值  Null:nil  Object:对象类型      var name

2015-03-17 01:53:07 342

原创 客户端优化

1. 启动速度的优化:

2014-08-27 00:42:57 397

转载 c++ 内存泄露

对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比

2014-08-26 23:44:39 344

原创 小结1--视频接入

第三方视频接入难点:        1.

2014-08-26 22:13:55 576

原创 关于继承比较容易混淆的概念

继承分为public继承、protected继承、私有继承

2014-08-26 00:30:15 432

转载 windows异常捕获

一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常;MiniDumpWriteDump写dump文件。但是由于CRT函数可能会在内部调用SetUnhandledExceptionFilter(NULL),解除我们程序设置的异常处理,这导致我们的程序无法完整捕获崩溃。另外,还有一部分非异常的CRT错误,不属于SEH异常捕获的范畴,需要通过_set_inval

2014-08-25 22:39:02 1217

转载 C++ 虚函数表

陈皓  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 

2014-08-25 00:14:25 339

转载 windgb的下载地址

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。主页:http://msdn.microsoft.com/en-us/windows/hardware/gg463016下载链接:http://msdl.microsoft.com/download/symbols/debuggers

2014-07-15 18:56:34 879

转载 jpeglib的使用

BOOL BmpToJpg( int nWidth, int nHeight, int nPixelBytes, BYTE* byBmpData, BYTE** byJpgData, unsigned long* nSize )  {      BOOL bResult = FALSE;            jpeg_compress_struct jCompress;   

2014-06-16 11:47:01 767

转载 ios学习路线图

2014-06-11 22:22:27 353

转载 cdecl、stdcall、fastcall函数调用约定区别

在C语言中,假设我们有这样的一个函数:    int function(int a,int b)    调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么

2014-06-07 16:03:26 327

原创 c++一些面试

收集一些c++面试题,可能平时知道,但是不是特别清楚的那种。

2014-06-07 16:02:15 392

转载 Chrome涉及到开源代码列表

序·关于Google Chrome Google Chrome 是Google 于2008年发布的一款开源的浏览器,它采用了许多开源的组件和工具,比如它的浏览器引擎采用的是开源的浏览器引擎WebKit。如果想获取Chrome的代码,可使用SVN从Google服务器上checkout,其SVN地址是src.chromium.org/svn, 这是一个总目录,包含有 Chrome、Ge

2014-06-04 18:19:53 535

原创 c++调用flash播放器

第一步:加载flash播放器1.在窗口中创建CAxwindow     CAxwindow  axWnd;axWnd.Create(hParent, rect, 0, WS_CHILD|WS_CLIPCHILDREN, 0, ID_CHILD_CONTROL) != NULL )//WS_VISIBLE|默认不可见axWnd.MoveWindow(lpRcInParent);

2014-03-18 18:33:18 2398

原创 如何让c++调用网页中的jsp函数

c++调用jsp一般通过在窗口中内嵌一个CAxWindow来实现的在CAxWindow中通过调用CreateControlEx来初始化话IWebBrowser2接口如:CComPtr punknown;HRESULT hr = CreateControlEx(L"Shell.Explorer", NULL, NULL, &punknown);CComQIPtr spWebB

2014-03-10 14:35:06 1491

转载 IDispatch接口原理与应用

IDispatch接口原理与应用目录:IDispatch接口原理与应用目录:前言:IDispatch接口的定义:创建支持IDispatch接口的COM对象:标准方式调用IDispatch接口的方法:采用ATL智能指针类调用IDispatch接口的方法:使用类COleDispatchDriver调用IDispatch的方法: 前言:尽管com接口是跨语

2014-03-10 12:00:27 744

原创 关于动态库dllmain收到通知的总结

动态库中dllmain函数会收到4个消息通知,分别为DLL_PROCESS_ATTACHDLL_THREAD_ATTACHDLL_THREAD_DETACHDLL_PROCESS_DETACH1.当进程中主线程启动的时候,加载的动态库会收到DLL_PROCESS_ATTACH消息,主线程退出时,收到DLL_PROCESS_DETACH2.当动态库加载后,进程中每一个

2014-03-09 21:37:14 1062

原创 关于线程的一些问题

MD和MT官方解析/MT  使应用程序使用运行时库的多线程静态版本。定义_MT 并使编译器将库名 LIBCMT.lib 放入 .obj 文件中,以便链接器使用 LIBCMT.lib解析外部符号。/MD 使应用程序使用运行时库的多线程并特定于DLL 的版本。定义 _MT 和 _DLL,并使编译器将库名 MSVCRT.lib 放入 .obj文件中。用此选项编译的应用程序静态链接到M

2014-03-09 16:05:44 453

原创 win32程序启动的过程和启动速度的优化

我们在做大型客户端软件的时候,一个重要的指标就是程序的启动速度,特别是冷启动。所谓冷启动也就是指系统启动以后,第一次打开程序。如果要减少程序的启动速度,就要了解程序的启动过程。首先我们看看程序的大致的启动过程:a、操作系统首先创建程序的进程,并为进程分配自己的空间,操作系统加载器会把程序相应的代码和数据段映射到该空间中b、操作系统加载器读取程序的导入符号表,根据符号表查找该程序依赖

2014-03-09 10:18:00 1011

转载 windows下如何提高程序启动速度

启动速度是很重要的一个点,如何加快呢?有个简单的原理:局部性原理。在计算速度越来越快的今天,性能的瓶颈很多时候是在I/O上(SSD硬盘的机器明显比机械硬盘快很多),如果能减少程序运行过程中读取磁盘的次数,那就能有效提高速度。减少程序运行过程中读取磁盘次数,就是减少缺页(Page fault)错误,让运行过程中的多数数据提前加载到物理内存,所以有个词,叫做“预读”。一、系统对启动加速的支持

2014-03-09 01:33:38 1661

转载 io优化

1、系统学习IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。 IO系统的分层:   三层结构上图层次比较多,

2014-03-09 00:25:30 590

原创 通过WSAEVENT事件替代socket多线程

socket编程的时候,为了监控不同的socket,可能用到多线程的方式实现,但是在数据量不是特别大的时候,可以用WSAEVENT(handle)代替多线程 比如有sockArray数组,可以通过WSAEVENT   wsEvent  = WSACreateEvent()产生和eventArray和sockArray对应,然后通过WSAEventSelect 绑定socke和event

2014-03-09 00:00:54 814

原创 多线程的同步问题小结

多线程同步一般可以使用:1.临界区(CRITICAL_SECTION):   临界区并不是内核对象,它存放在进程内部,所以不能跨进程。不用create和closehandle,直接init和delete就可以   它是轻量级的,效率可能是其他内核对象100倍   但是一个线程意外结束,未调用leave时,回导致其他线程一直不能访问被锁定资源   同一个线程在leave之前,可以

2014-03-08 17:37:14 434

原创 同时处理消息和内核对象详细介绍

有时候大家要同时处理消息和内核对象,大家都知道用msgwait***函数,但是处理部分或多或少会有点问题,没有处理好,我在工作的时候就碰到过。记录一个详细的版本,以后忘记了可以过来看看while(!bQuit){MSG msg;int ret;ret = MsgWaitForMultipleObjects(nWait,hArray,FALSE,5000,QS_ALLIN

2014-03-08 15:32:09 519

转载 程序员最该看的30本书 --------国外编辑推荐

“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”很多程序员响应,他们在推荐时也写下自己的评语。以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典 ,下面就按照各本书的推荐数排列。1. 《代码大全》 史

2014-03-07 12:11:32 824

转载 c&c++程序优化几个建议

第一:记住,代码写完后一定要做一下系统优化,无论上面是否这样要求,但是这点很重要,是一种态度,当然优化可以借助各种工具如IBM和INTEL系列的优化工具,一般80%的时间被20%的代码所占用。第二:如果你所在公司,对程序性能优化不重视,那么就请跳槽吧。第三:要知道你所用编译器是怎么去优化多维数组访问的,如A[i][j]->A[i][j+1] 和A[i][j]->A[i+1][j]的

2014-03-07 10:46:05 612

空空如也

空空如也

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

TA关注的人

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