您现在的位置:首页
--> 淘宝文通
有感于我厂某iOS项目的开发管理混乱,所以这里说一下我这边对Xcode工程的一些管理经验 。
正式做管理工作也有2年时间了,自从今年团队大了以后才开始思考什么是管理.并真正去学习如何管理 今天就将这些思考写下来也算是一种沉淀。
CocoaPods有点像Java领域的Maven.当然它并不是作为构建工具存在的,构建还是由Xcode来负责,CocoaPods主要负责了各个类库的依赖管理,而且强大的是它还有自己的资源库..而且对比Maven它的依赖管理更加灵活,可以直接依赖本地的库或者自定义依赖一个git上的库.这点和Gradle很像
设计模式中的状态模式 这是标准的状态模式.其中Context管理所有状态,而每个状态都是自己的类,而状态的流转逻辑由状态自己执行. 然后完整的状态模式实现太过”重”,而且状态流转的描述在代码上也不会是一目了然.所以我对状态模式进行了简化和优化.使其很”轻”,易于使用和实现,而且对于状态流转在代码上也能一目了然.所有的流转逻辑都能在一屏上显示出来.
使用TDH_SOCKET进行插入能到这么高TPS的关键:
TDH_SOCKET提供group commit:
减少redo log的fsync次数,使IOPS不成为瓶颈
TDH_SOCKET能提供并发写.
自增id的生成策略需要分段自增:
如果采用全自增id生成策略(即默认innodb提供的自增id生成策略)的话,会在高并发插入的时候遇到一个block的写锁.
因为是顺序自增,所以并发插入的记录都会集中写入到同一个page上,而一个线程写page会对这个page做一次rw_lock_x_lock_func(&(block->lock), 0, file, line); 那么这个写锁会成为瓶颈,使TPS无法上去所以只要改变生成id的策略:
分段自增比如一个写线程一下子获取1-10000的id范围 下一个写线程获取10001-20000的id范围..
每个写线程在各自的范围里面自增的生成id,那么即能保证一定的顺序写,又能使写page不会因为并发写锁而性能下降!
用HandlerSocket大量并发插入数据到多个InnoDB的表(都使用自增id)的时候就会大量出现167的错误,从而TPS下降极为厉害.
[ 共6篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [66] Oracle MTS模式下 进程地址与会话信
- [66] Go Reflect 性能
- [65] 如何拿下简短的域名
- [59] android 开发入门
- [59] 图书馆的世界纪录
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告