自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android开发学习--AsyncTask

Android的UI线程主要负责处理用户的按键事件、用户触屏事件及屏幕绘图事件等,对于其他的操作尽量不要在UI线程中实现,因为这些操作很有可能会阻塞UI线程,导致UI界面停止响应,从而降低了用户的体验,严重时出现ANR(无响应)。为了避免UI线程失去响应的问题,Android建议将耗时操作移动到新线程中完成,但新线程也可能需要动态更新UI组件(比如需要从网上获取一个网页,然后在TextView中将其

2015-03-31 22:41:01 437

转载 C++中的SFINAE

来源:http://blog.chinaunix.net/uid-1720597-id-306773.html这几天神游到一段is_base_of的代码迷惑了很久, 在查资料的过程当中, 发现C++中一种称之为SFINAE的技巧, 全称为"匹配失败并不是一种错误(Substitution Failure Is Not An Error)". 这是一种专门利用编译器匹配失败来达到某种目的的技巧.

2015-03-29 17:26:15 396

原创 chromium源码阅读(2)-智能指针scoped_ptr

scoped_ptr,顾名思义,是被设计用来管理指针的声明周期的。在指针对象离开当前作用域后,scoped_ptr负责清理销毁指针对象,从而避免c++程序员管理内存的负担。 1、scoped_ptr用法1)scoped_ptr{ scoped_ptr<Foo> foo(new Foo("wee"));} // foo goes out of scope, releasing the

2015-03-29 13:32:55 663

原创 chromium源码阅读(1)-引用计数

引用计数是诸多技术的基础,设计上基本如出一辙,chromium智能指针的设计原理也基本类似,不过更为精巧。1) 抽象出引用计数的基类,避免模板膨胀的问题![这里写图片描述](http://img.blog.csdn.net/20150328115112897)2) 线程安全的引用计数template <class T, typename Traits> class RefCountedThr

2015-03-28 12:23:47 619

转载 内存屏障

内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水

2015-03-28 09:44:02 305

转载 libevent源码深度剖析十一

libevent源码深度剖析十一——时间管理张亮     为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数、时间缓存、时间校正和定时器堆的时间值调整等。下面就结合源代码来分析一下。1 初始化检测    Libevent在初始化时会检测系统时间的类型,通过调用函数detect_monotonic()完成,

2015-03-24 22:17:45 321

转载 libevent源码深度剖析十

libevent源码深度剖析十——支持I/O多路复用技术张亮      Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就来分析一下。1 统一的关键      Libevent

2015-03-24 22:16:26 261

转载 Android省电开发 浅析

来源:http://blog.csdn.net/wtyvhreal/article/details/44589665  之前有在写Android性能优化的问题,相信对于Android App省电的开发,一切性能优化都可以达到App的省电开发,所以一个省电的Android应用,性能优化占据很重要的位置。除此之外呢,根据个人平时的Android开发积累,LZ整理了几点关于Android应用省电

2015-03-24 22:14:05 397

转载 libevent源码深度剖析一

libevent源码深度剖析一——序幕张亮 1 前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。附带一句:Libevent是用c语言编写的(MS大牛们都偏爱c语言哪),而且几乎是无处不

2015-03-21 23:16:05 397

转载 libevent源码深度剖析二

libevent源码深度剖析二——Reactor模式张亮前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,并列出libevnet中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。1 Reactor的事件处理机制首先来回想一下普通函数调用的机制:程序调用某函数?函

2015-03-21 23:14:51 337

转载 libevent源码深度剖析三

libevent源码深度剖析三——libevent基本使用场景和事件流程张亮1 前言学习源代码该从哪里入手?我觉得从程序的基本使用场景和代码的整体处理流程入手是个不错的方法,至少从个人的经验上讲,用此方法分析libevent是比较有效的。2 基本应用场景基本应用场景也是使用libevnet的基本流程,下面来考虑一个最简单的场景,使用livevent设置定

2015-03-21 23:13:16 427

转载 libevent源码深度剖析四

libevent源码深度剖析四——libevent源代码文件组织1 前言详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的。本节内容不多,我想并不是说它不重要!2 源代码组织结构Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、

2015-03-21 23:12:39 333

转载 libevent源码深度剖析五

libevent源码深度剖析五——libevent的核心:事件event张亮对事件处理流程有了高层的认识后,本节将详细介绍libevent的核心结构event,以及libevent对event的管理。1 libevent的核心-event      Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。event

2015-03-21 23:11:45 349

转载 libevent源码深度剖析六

libevent源码深度剖析六——初见事件处理框架张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析libevent的事件处理框架event_base和libevent注册、删除事件的具体流程,可结合前一节libevent对event的管理。1 事件处理框架-event_base

2015-03-21 23:11:22 332

转载 libevent源码深度剖析七

libevent源码深度剖析七——事件主循环张亮     现在我们已经初步了解了libevent的Reactor组件——event_base和事件管理框架,接下来就是libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理事件。1 阶段性的胜利    Libevent将I/O事

2015-03-21 23:10:04 386

转载 libevent源码深度剖析八

libevent源码深度剖析八——集成信号处理张亮      现在我们已经了解了libevent的基本框架:事件管理框架和事件主循环。上节提到了libevent中I/O事件和Signal以及Timer事件的集成,这一节将分析如何将Signal集成到事件主循环的框架中。1 集成策略——使用socket pair      前一节已经做了足够多的介绍了,基本方法就是

2015-03-21 23:07:41 340

转载 libevent源码深度剖析九

现在再来详细分析libevent中I/O事件和Timer事件的集成,与Signal相比,Timer事件的集成会直观和简单很多。Libevent对堆的调整操作做了一些优化,本节还会描述这些优化方法。1 集成到事件主循环     因为系统的I/O机制像select()和epoll_wait()都允许程序制定一个最大等待时间(也称为最大超时时间)timeout,即使没有I/O事件发生,它

2015-03-21 23:06:11 298

转载 一步步将vim改造成C/C++开发环境(IDE)

转载请注明出处lingdxuyan.blog.chinaunix.net 一步步将vim改造成C/C++开发环境(IDE)原文地址http://blog168.chinaunix.net/space.php?uid=23089249&do=blog&id=2855999【参考资料】吴垠的“手把手教你把Vim改装成一个IDE编程环境”在Fedora下成功将Vim打

2015-03-17 17:07:42 328

原创 anroid开发-性能测试篇

因为工作需要,需研究Android App CPU占用和内存占用较高的问题,从网上没有找到有效的工具,分析一下,CPU和内存是一个实时变化的状态,考虑到Android是基于Linux平台的,我们可以直接用Linux的资源监控命令来对Android平台的资源进行实时监控。      步骤如下:      假设我们要监控的包名称:com.baidu.BaiduMap1)     a

2015-03-16 22:51:05 82

转载 SIFT特征提取分析

来源:http://blog.csdn.net/abcjennifer/article/details/7639681分类: Computer Vision2012-06-06 22:06 115939人阅读 评论(206) 收藏 举报角点特征SIFT角点检测SIFT(Scale-invariant feature transform)是一种检测局部特征的算

2015-03-14 18:47:52 404

转载 以boost::function和boost:bind取代虚函数

来源:http://blog.csdn.net/solstice/article/details/3066268这是一篇比较情绪化的blog,中心思想是“继承就像一条贼船,上去就下不来了”,而借助boost::function和boost::bind,大多数情况下,你都不用上贼船。boost::function和boost::bind已经纳入了std::tr1,这或许是C++0

2015-03-14 15:45:58 348

转载 当析构函数遇到多线程

来源:http://www.cnblogs.com/Solstice/archive/2010/02/10/dtor_meets_threads.html摘要编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对

2015-03-14 00:11:41 5878

原创 android开发学习--AsyncTask

Android的UI线程主要负责处理用户的按键事件、用户触屏事件及屏幕绘图事件等,对于其他的操作尽量不要在UI线程中实现,因为这些操作很有可能会阻塞UI线程,导致UI界面停止响应,从而降低了用户的体验,严重时出现ANR(无响应)。为了避免UI线程失去响应的问题,Android建议将耗时操作移动到新线程中完成,但新线程也可能需要动态更新UI组件(比如需要从网上获取一个网页,然后在TextView中将

2015-03-12 21:33:09 332

转载 编程之美 读书笔记(寻找最大的k个数)

实际的情况我觉得往往要考虑到数的范围,数的特点(整数还是浮点,重复多不多)以及K与数组长度N的比例关系,数组长度N是否超出内存大小等等因素。问题:有很多无序的数,姑且假定它们各不相等,怎么选出其中最大的若干个数呢?实际可能的应用场景1从1亿个qq号码中选出最值钱的5000个2从2亿张图片中选出点击率最高的100张算法一:直接选择排序、冒泡排序时间复杂度: o(N^2)

2015-03-10 08:45:43 416

原创 Ubuntu 14.04下搭建 Android 开发环境(2) -SDK&IDE

到目前为至,JDK已经搭建完毕。今天继续android开发环境的搭建。1、国际惯例,先下载android的sdk安装包,官网地址:http://developer.android.com/sdk/index.html,由于“你懂的”原因,需要大家各显神通啦。2、解压     tar -zxvf android-sdk_r19-linux.tgz     解压出来是一个android

2015-03-08 17:31:30 1108

转载 Ubuntu 14.04下搭建 Android 开发环境(1) -JDK安装

1、下载最新的jdk安装,地址:http://www.oracle.com/technetwork/java/javase/downloads/2、解压jdk-8u20-linux-x64.gz,我放置在/opt下sudo tar zxvf ./jdk-8u20-linux-x64.gz -C /opt3、配置环境变量vim ~/.bashrc按shit

2015-03-06 17:53:10 467

转载 nedmalloc结构分析

【内存池】nedmalloc结构分析(2011-06-11 11:09:02)转载▼标签:杂谈分类:游戏开发  nedmalloc是一个跨平台的高性能多线程内存分配库,很多库都使用它,例如:OGRE.现在我们来看看nedmalloc的实现(以WIN32部分为例)   位操作小技巧;(1)、获取最低位的出现位置的掩码;x&(

2015-03-06 16:47:43 780

翻译 c++move语义与右值引用

// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "base/compiler_specif

2015-03-05 12:20:52 3866

空空如也

空空如也

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

TA关注的人

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