字典的过滤
根据键或者值进行大量数据的字典过滤,应尽量选取生成器表达式,或者字典解析式,前者效率更好
以下是一个例子:
1 | from datetime import datetime |
输出:
1 | {'3': 6, '2': 5} |
可见生成器表达式高出几个量级的处理效率,当然数据比较少的时候可以使用字典解析,占用较少的内存。
根据键或者值进行大量数据的字典过滤,应尽量选取生成器表达式,或者字典解析式,前者效率更好
以下是一个例子:
1 | from datetime import datetime |
输出:
1 | {'3': 6, '2': 5} |
可见生成器表达式高出几个量级的处理效率,当然数据比较少的时候可以使用字典解析,占用较少的内存。
提升github上 clone 或 push 慢的原因:不是 github.com
的域名被限制了,而是 github.global.ssl.fastly.net
这个域名被限制了,最终导致git的速度最高只能达到20KB/S
,通过以下方法解决:
"github.global.ssl.fastly.net"
,查到””TTL”值最小的,以北京【联调】IP为例:151.101.229.194;sudo vim /etc/hosts
,在后面追加"151.101.229.194 github.global.ssl.fastly.net"
,点击保存。例如:192.30.253.113 github.com
151.101.229.194 github.global.ssl.fastly.net
我们知道线程是CPU调度的最小单位。在Android中主线程是不能够做耗时操作的,子线程是不能够更新UI的。在Android中,除了Thread外,扮演线程的角色有很多,如AsyncTask,IntentService和HandlerThread等等。良好的线程使用习惯有助于减少 app 出现崩溃和性能开销的风险,接下来介绍一下线程池的使用。
不知道大家有没有遇到过这种情况。我们在写项目,遇到耗时操作的时候,怎么办呢,是不是new Thread().start
,那这样的话,整个项目中得new
多少个Thread
。这种明显是很浪费性能。那么有没有一种可以方法对线程进行复用呢?答案就是线程池。
先说一下线程池的好处:
如果需要使用mysql作为数据库,sonarqueb版本的不能高于7.9及以上。
使用sonarqube6.7.5版本,故安装jdk1.8即可
下载直接放到/usr/local/
下
在.bash_profile文件中增加
1 | export OCLINT_HOME=/usr/local/oclint-0.13 |
数据库设置:
1 | CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; |
am指令是 activity manager的缩写,可以启动Service、Broadcast,杀进程,监控等功能,这些功能都非常便捷调试程序。
可以通过adb shell 进入Android 的Linux命令界面,输入am -help查看详细命令,先介绍几个简单用法.
1 | //使用Action方式打开系统设置-输入法设置 |
已经研究过appium+xcode10
方式启动任意应用,之后通过TraceUlity
解析trace
数据获取性能数据,当然在ppt中也写过,知其然知其所以然,appium是通过Instruments -w udid -t Activity Monitor -D /var/folders/kd/6rx5zx0933jbprw8dygcr4s40000gn/T/20181120-93821-1u26x7f.vt4y/appium_perf_Activity_Monitor_1545301850892.trace -l 60000 -p 12620
来启动instrument录制性能的。那么顺势就研究一下如何通过命令行启动instruments吧!
本篇文章主要记录目前比较流行的 RESTful api
设计规范,为后续开发各种平台提供接口设计规范。
去年大致同期就研究过MLeaksFinder和FBRetainCycleDetector两个关于iOS内存泄漏的监控工具。前者的思路是:通常一个 UIViewController 在被 pop 之后将会很快被释放,假设在 pop 3 秒钟之后仍然没有被释放,则可以认为这个 UIViewController 存在泄漏的问题。在后续的更新版本中,MLeaksFinder 也依赖了 Facebook 的FBRetainCycleDetector来辅助判断内存泄漏是否是由循环引用引起的。后者的原理是在 Objective-C 中检测循环引用可以抽象为在一个节点为对象,边为对象之间的引用关系的有向无环图(DAG 图)中寻找存在的环。当所有的 Objective-C 对象已经在我们的有向无环图中时,我们所需要做的就是通过深度优先搜索算法来遍历它,并找到循环节点。关于FBRetainCycleDetector的详细解释实践参考该博客《如何在 iOS 中解决循环引用的问题》。
长久以来iOS上的电量测试相关信息都是很单一,唯一能获取电量详细信息的私有接口也在iOS9中被苹果官方封掉了。传统方案获取电量的路几乎在新的系统版本下被堵死,使得我们不得不寻求新的电量获取方式。