String拼接效能分析
String拼接在頻繁使用時,不同方法效能差別較大:
package com.example.ss.hello; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView)findViewById(R.id.hello); long n = 10000; long start1 = System.currentTimeMillis(); String s1 = new String("hello"); for (long i = 0; i < n; i++) { s1 += "拼接--"; } long end1 = System.currentTimeMillis(); long time1 = end1 - start1; tv.setText("用String+=拼接字串的時間:" + time1); long start2 = System.currentTimeMillis(); String s2 = new String("hello"); for (long i = 0; i < n; i++) { s2 = s2 + "拼接--"; } long end2 = System.currentTimeMillis(); long time2 = end2 - start2; tv.append("用String=String+拼接字串的時間" + time2); long start3 = System.currentTimeMillis(); String s3 = new String("hello"); for (long i = 0; i < n; i++) { s3 = s3.concat("拼接--"); } long end3 = System.currentTimeMillis(); long time3 = end3 - start3; tv.append("用String.concat拼接字串的時間" + time3); long start4 = System.currentTimeMillis(); StringBuffer s4 = new StringBuffer("hello"); for (long i = 0; i < n; i++) { s4.append("拼接--"); } long end4 = System.currentTimeMillis(); long time4 = end4 - start4; tv.append("用StringBuffer.append拼接字串的時間" + time4); long start5 = System.currentTimeMillis(); StringBuilder s5 = new StringBuilder("hello"); for (long i = 0; i < n; i++) { s5.append("拼接--"); } long end5 = System.currentTimeMillis(); long time5 = end5 - start5; tv.append("用StringBuilder.append拼接字串的時間" + time5); } }
真機執行結果如下
可見使用+= 與使用StringBuilder.append差別達到了指數級。
頻繁使用拼接的操作中若使用+=,則有可能造成頻繁GC,從而產生丟幀的現象。
相關推薦
String拼接效能分析
String拼接在頻繁使用時,不同方法效能差別較大: package com.example.ss.hello; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; i
java String常量池與字串拼接效能優化
----String常量池---- 1.常量池中的物件從哪裡來的? String s1="hanhan"; String s2="hanhan"; System.out.println(s1==s2);//true 當我們建立String物件採用字面量
java四種字串拼接方式效能分析
前幾天寫一個防重複提交的元件的時候,有一個操作是需要將各個欄位的字串拼接成一個requestKey。看了別人的程式碼,我發現,中介軟體這種東西,每天都要處理幾百幾千萬的請求,但是裡面很多字串拼接的時候還是很原始的“+”號拼接,如果將所有的字串拼接操作都換成更高效
jdk不同版本對String拼接的優化分析
對比jdk5-8所有版本下的反編譯位元組碼,發現結果相同,證明字串拼接從jdk5開始就已經完成了優化,並且沒有進行新的優化。 詳細看反編譯後的位元組碼,8開始進入for迴圈比較階段,11new一個新的StringBuilder,為了優化之後的String+操作。34迴圈結束,重新到5,將會在11重新new一個
軟件工程第三次作業 - 效能分析
字符 耗時 rds words 是否 有變 行存儲 導致 分隔 要求0:以 戰爭與和平 作為輸入文件,重讀向由文件系統讀入。連續三次運行,給出每次消耗時間、CPU參數。 第一次運行結果: 本次程序運行所消耗的時間為1.2秒。 第二次運行結果:
wf效能分析
use new ++ 執行 編譯 -1 arr i++ spa 聽從了老師的建議我請教了其他的同學,修改了代碼實現了功能四,以下是我的效能測試: 1.采用ptime.exe測試的3次截圖 可以看到的是三次執行時間分別為:1.449秒;0.915秒;0.871秒,
2017年軟件工程第三次作業-2效能分析
大於 閃退 font rcp 工作 接下來 原因 char 效果 要求0 以 戰爭與和平 作為輸入文件,重讀向由文件系統讀入。連續三次運行,給出每次消耗時間、CPU參數 首先,我下載ptime.exe,不知道什麽原因我下載下來以後運行老出現閃退現象。一直沒法使用
效能分析
成功 reg 分享 stream png read vs2015 處理文本 idt 效能分析: 首先使用ptime連續運行三次,運行時間截圖如下: 三次平均運行時間:17.535s 猜測程序的瓶頸為: string filename = Console.ReadLi
Java中String、StringBuilder、StringBuffer常用源碼分析及比較(一):String源碼分析
array string類 都是 epo sys 匹配字符串 bound 地址 簡單 String: 一、成員變量: /** The value is used for character storage. */ private final char value[
String初始化與String拼接
運行時 equals方法 直接 b+ args tao 方法 字符串常量 大小 介紹String的的初始化 public class StringDemo{ private static final String MESSAGE="taobao"; public
String源碼分析
長度 null 分析 nta 完成 bounds pty per 字節數組 一、類定義 public final class String implements java.io.Serializable, Comparable<String>, CharSequ
C# 中的 String類型分析
body true println 因此 包括 概念 () 了解 自己 equals方法和==的區別 首先大家知道,String既可以作為一個對象類來使用,又可以作為一個基本類型來使用。這裏指的作為一個基本類型來使用只是指使用方法上的,比如String s = "
第五次作業——python效能分析與幾個問題(個人作業)
結合 撰寫 porting tin 設計實現 cti personal 設計文檔 hub 第五次作業——效能分析與幾個問題(個人作業) 前言 閱讀了大家對於本課程的目標和規劃之後,想必很多同學都躍躍欲試,迫不及待想要提高自身實踐能力,那麽就從第一個個人項目開始吧,題目要求見
[JAVA] String 拼接效率
builder take 一個 code += In char inpu ont 344. Reverse String Write a function that takes a string as input and returns the string revers
關於String源碼分析
長度 boolean indexof valueof replace 源碼分析 拼接 方法 inter 關於String的類定義: public final class String implements java.io.Serializable, Comparable&
20180925-3 效能分析
出現 ima 函數調用 clas 查詢 string函數 col 運行 core 一、得出程序運行時間 運行截圖如下: 第一次運行時間為 0.942 s 第二次運行時間為 0.826 s 第三次運行時間為 0.861 s 平均運行時間為:0.876 s CPU參數:I
作業 20180925-3 效能分析
count color 正則匹配 str 2.0 height font 9.png 表達式 作業要求: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145 git地址:https://git.coding.
第三次作業——效能分析
分享圖片 urn ali spl cnblogs ctu 轉換 top 代碼 此作業的要求參見:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145] 該作業git地址為:https://git.coding
作業要求 20180925-3 效能分析
.com odin width cnblogs spa .cn alt net ref 本次作業要求參見: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145 由於上次作業沒有實現功能4,具體的代碼還在做,在
CSS動畫的效能分析和瀏覽器GPU加速
此文已由作者袁申授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 有數的資料大屏可以在一塊螢幕上展示若干張不同的圖表,以炫酷的方式展示各種業務資料。其中有些圖表使用CSS實現了餅圖輪播、地圖示記點閃爍等動畫,然而在一張大屏上同時顯示了許多張圖表時,持續的動畫效果有時會出現掉幀、卡頓的