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'...
    赤赤有名閱讀 2,103評論 0 10
  • 我一直在發現,他們一直在實現!曾經流浪到安徽宣城記錄下這個村子的紅高粱,時隔多年浩然的小伙伴把它做成中國的XO,帶...
    我是老農閱讀 379評論 0 0
  • 又有一段時間沒有回家,心中十分想念他們--我的孩子們。大的和小的,都是男孩,一個勝一個調皮。大的6歲,小的1...
    吉古吉閱讀 366評論 0 1
  • 夜深了 卻不能睡下 躺著,即在發呆 一些些感觸,卻停不下來。 只能讓它肆意在回憶里亂竄 想想,瞬間已然過去一年半 ...
    queeny23閱讀 159評論 1 1