引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITableView自动计算cell高度的方法等.本文将从cell层级出发,以一个仿朋友圈的demo来讲述如何让列表保持顺滑,项目的源码可在文末获得.不可否认的是,过早的优化是魔鬼,请在项目出现性能瓶颈再考虑优化. 首先看看reveal上页面层级的效果图 然后是9.3系统iPhone5的真机效果 1.绘制文…
引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITableView自动计算cell高度的方法等.本文将从cell层级出发,以一个仿朋友圈的demo来讲述如何让列表保持顺滑,项目的源码可在文末获得.不可否认的是,过早的优化是魔鬼,请在项目出现性能瓶颈再考虑优化. 首先看看reveal上页面层级的效果图 1.绘制文本 使用core text可以将文本绘制在…
一.CoreText的简介 CoreText是用于处理文字和字体的底层技术.它直接和Core Graphics(又被称为Quartz)打交道.Quartz是一个2D图形渲染引擎,能够处理OSX和iOS中图形显示问题.Quartz能够直接处理字体(font)和字形(glyphs),将文字渲染到界面上,它是基础库中唯一能够处理字形的模块.因此CoreText为了排版,需要将显示的文字内容.位置.字体.字形直接传递给Quartz.与其他UI组件相比,由于CoreText直接和Quartz来交互,所以它…
基于.NET MVC的高性能IOC插件化架构 最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http://www.cnblogs.com/gengzhe/p/4370979.html 我先分析下我的系统架构:…
基于nginx+lua+redis高性能api应用实践 前言 比较传统的服务端程序(PHP.FAST CGI等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放.由于进程创建.销毁对资源占用比较高,所以很多语言都通过常驻进程.线程等方式降低资源开销.即使是资源占用最小的线程,当并发数量超过1k的时候,操作系统的处理能力就开始出现明显下降,因为有太多的CPU时间都消耗在系统上下文切换. lua-nginx-module模块将lua嵌入到nginx,让nginx…
前言 本人今年主要在负责猿题库iOS客户端的开发,本文旨在通过分享猿题库iOS客户端开发过程中的技术细节,达到总结和交流的目的. 这是本技术分享系列文章的第三篇.本文涉及的技术细节是:基于CoreText的排版引擎. CoreText概述 因为猿题库的做题和解析界面需要复杂的排版,所以我们基于CoreText实现了自己的富文本排版引擎.我们的排版引擎对公式.图片和链接有着良好支持,并且支持各种字体效果混排.对于内容中的图片,支持点击查看大图功能,对于内容中的链接,支持点击操作. 下图是我们应用的…
基于Protobuf的分布式高性能RPC框架——Navi-Pbrpc 二月 8, 2016 1 简介 Navi-pbrpc框架是一个高性能的远程调用RPC框架,使用netty4技术提供非阻塞.异步.全双工的信道,使用protobuf作为序列化协议,同时提供长.短连接模式,支持non-blocking和传统的blocking io,以及负载均衡,容错处理策略等,对于基于socket的分布式调用提供通信基础. 如果你的项目中需要高性能的RPC解决方案,那么navi-pbrpc可以帮助到你构建一个强大…
引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITableView自动计算cell高度的方法等.从cell层级出发,以一个仿朋友圈的demo来讲述如何让列表保持顺滑,项目的源码可在文末获得.不可否认的是,过早的优化是魔鬼,请在项目出现性能瓶颈再考虑优化. 首先看看reveal上页面层级的效果图 1.绘制文本 使用core text可以将文本绘制在一个C…
mina是非常好的C/S架构的java服务器,这里转了一篇关于它的使用感受. 前言MINA是Trustin Lee最新制作的Java通讯框架.通讯框架的主要作用是封装底层IO操作,提供高级的操作API.比较出名的通讯框架有C++的ACE.Python的Twisted,而Java的通讯框架还有QuickServer.Netty2.Cindy.Grizzly等. 2004年6月,Trustin Lee发布了一个通讯框架Netty2,是Java界第一个事件模型架构的通讯框架,Cindy也从中借鉴了不少…
大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC研究报告分析指出,到2012年非结构化数据将占到数据存储总量的80%以上.集群NAS是一种横向扩展(Scale-out)存储架构,具有容量和性能线性扩展的优势,已经得到全球市场的认可.从EMC对ISILON.HP对IBRIX.DELL对Exanet等收购事件,以及IBM推出SONAS.NetApp发…