Eliminating Code Overhead by Jake Wharton

https://www.youtube.com/watch?v=b6zKBZcg5fk
笔记:

  1. new ArrayList<>(), 最好是给初始的capacity, 默认值是zero initial capacity.
    尽量避免之后调用add()操作, 造成的memory object copy引起的额外性能消耗.
    chromium写的好的代码长这样:
    protected static List<String> processLogcat(List<String> rawLogcat) {
        List<String> out = new ArrayList<String>(rawLogcat.size());
        for (String ln : rawLogcat) {
            ln = elideEmail(ln);
            ln = elideUrl(ln);
            ln = elideIp(ln);
            ln = elideMac(ln);
            ln = elideConsole(ln);
            out.add(ln);
        }
        return out;
    }
  1. new StringBuilder(), 最好给出初始的capacity, 默认值是16.
    尽量避免之后调用append()操作, 造成的memory object copy引起的额外性能消耗.
    最好是调用这个构造方法:
    public StringBuilder(String str) {
        super(str);
    }

The capacity of the new builder will be the length of the String plus 16.
chromium写的好的代码长这样:

    private String buildSuggestWhere(String selection, int argc) {
        StringBuilder sb = new StringBuilder(selection);
        for (int i = 0; i < argc - 1; i++) {
            sb.append(" OR ");
            sb.append(selection);
        }
        return sb.toString();
    }
  1. 学习了不同的方法调用对应bytecode上的4种类型.
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
13.png
14.png
15.png
16.png
17.png
18.png

----- DONE ----

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java中String的常用方法 1、length()字符串的长度 例:char chars[]={'a','b'...
    赤赤有名阅读 6,325评论 0 10
  • 我一直在发现,他们一直在实现!曾经流浪到安徽宣城记录下这个村子的红高粱,时隔多年浩然的小伙伴把它做成中国的XO,带...
    我是老农阅读 2,880评论 0 0
  • 又有一段时间没有回家,心中十分想念他们--我的孩子们。大的和小的,都是男孩,一个胜一个调皮。大的6岁,小的1...
    吉古吉阅读 2,767评论 0 1
  • 夜深了 却不能睡下 躺着,即在发呆 一些些感触,却停不下来。 只能让它肆意在回忆里乱窜 想想,瞬间已然过去一年半 ...
    queeny23阅读 1,079评论 1 1