Skip to content

Commit 785ac5d

Browse files
committed
feat: optimize log system and time statistics system
1 parent 0c4ce07 commit 785ac5d

File tree

6 files changed

+25
-23
lines changed

6 files changed

+25
-23
lines changed

android-startup/src/main/java/com/rousetime/android_startup/StartupManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class StartupManager private constructor(
5353
mAwaitCountDownLatch = CountDownLatch(needAwaitCount.get())
5454

5555
if (startupList.isNullOrEmpty()) {
56-
StartupLogUtils.e("startupList is empty in the current process.")
56+
StartupLogUtils.e { "startupList is empty in the current process." }
5757
return@apply
5858
}
5959

android-startup/src/main/java/com/rousetime/android_startup/dispatcher/StartupManagerDispatcher.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ internal class StartupManagerDispatcher(
3333
}
3434

3535
override fun dispatch(startup: Startup<*>, sortStore: StartupSortStore) {
36-
StartupLogUtils.d("${startup::class.java.simpleName} being dispatching, onMainThread ${startup.callCreateOnMainThread()}.")
36+
StartupLogUtils.d { "${startup::class.java.simpleName} being dispatching, onMainThread ${startup.callCreateOnMainThread()}." }
3737

3838
if (StartupCacheManager.instance.hadInitialized(startup::class.java)) {
3939
val result = StartupCacheManager.instance.obtainInitializedResult<Any>(startup::class.java)
4040

41-
StartupLogUtils.d("${startup::class.java.simpleName} was completed, result from cache.")
41+
StartupLogUtils.d { "${startup::class.java.simpleName} was completed, result from cache." }
4242

4343
notifyChildren(startup, result, sortStore)
4444
} else {

android-startup/src/main/java/com/rousetime/android_startup/run/StartupRunnable.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ internal class StartupRunnable(
2626
override fun run() {
2727
Process.setThreadPriority(startup::class.java.getAnnotation(ThreadPriority::class.java)?.priority ?: Process.THREAD_PRIORITY_DEFAULT)
2828
startup.toWait()
29-
StartupLogUtils.d("${startup::class.java.simpleName} being create.")
29+
StartupLogUtils.d { "${startup::class.java.simpleName} being create." }
3030

3131
TraceCompat.beginSection(startup::class.java.simpleName)
32-
StartupCostTimesUtils.recordStart(startup::class.java, startup.callCreateOnMainThread(), startup.waitOnMainThread())
32+
StartupCostTimesUtils.recordStart { Triple(startup::class.java, startup.callCreateOnMainThread(), startup.waitOnMainThread()) }
3333
val result = startup.create(context)
34-
StartupCostTimesUtils.recordEnd(startup::class.java)
34+
StartupCostTimesUtils.recordEnd { startup::class.java }
3535
TraceCompat.endSection()
3636

3737
// To save result of initialized component.
3838
StartupCacheManager.instance.saveInitializedComponent(startup::class.java, ResultModel(result))
39-
StartupLogUtils.d("${startup::class.java.simpleName} was completed.")
39+
StartupLogUtils.d { "${startup::class.java.simpleName} was completed." }
4040

4141
dispatcher.notifyChildren(startup, result, sortStore)
4242
}

android-startup/src/main/java/com/rousetime/android_startup/sort/TopologySort.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,6 @@ internal object TopologySort {
125125
append("|================================================================")
126126
}
127127
}
128-
StartupLogUtils.d(printBuilder)
128+
StartupLogUtils.d { printBuilder }
129129
}
130130
}

android-startup/src/main/java/com/rousetime/android_startup/utils/StartupCostTimesUtils.kt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,22 @@ internal object StartupCostTimesUtils {
2222
val mainThreadTimes
2323
get() = (endTime ?: System.nanoTime()) - startTime
2424

25-
fun recordStart(startup: Class<out Startup<*>>, callOnMainThread: Boolean, waitOnMainThread: Boolean) {
25+
fun recordStart(block: () -> Triple<Class<out Startup<*>>, Boolean, Boolean>) {
2626
if (checkOpenStatistics()) {
27-
costTimesMap[startup.getUniqueKey()] = CostTimesModel(
28-
startup.simpleName,
29-
callOnMainThread,
30-
waitOnMainThread,
31-
System.nanoTime() / ACCURACY
32-
)
27+
block().run {
28+
costTimesMap[first.getUniqueKey()] = CostTimesModel(
29+
first.simpleName,
30+
second,
31+
third,
32+
System.nanoTime() / ACCURACY
33+
)
34+
}
3335
}
3436
}
3537

36-
fun recordEnd(startup: Class<out Startup<*>>) {
38+
fun recordEnd(block: () -> Class<out Startup<*>>) {
3739
if (checkOpenStatistics()) {
38-
costTimesMap[startup.getUniqueKey()]?.let {
40+
costTimesMap[block().getUniqueKey()]?.let {
3941
it.endTime = System.nanoTime() / ACCURACY
4042
}
4143
}
@@ -49,7 +51,7 @@ internal object StartupCostTimesUtils {
4951
}
5052

5153
fun printAll() {
52-
StartupLogUtils.d(buildString {
54+
StartupLogUtils.d { buildString {
5355
append("startup cost times detail:")
5456
append("\n")
5557
append("|=================================================================")
@@ -75,7 +77,7 @@ internal object StartupCostTimesUtils {
7577
append("| Total Main Thread Times | ${mainThreadTimes / ACCURACY} ms")
7678
append("\n")
7779
append("|=================================================================")
78-
})
80+
} }
7981
}
8082

8183
private fun checkOpenStatistics() = StartupCacheManager.instance.initializedConfig?.openStatistic == true

android-startup/src/main/java/com/rousetime/android_startup/utils/StartupLogUtils.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ internal object StartupLogUtils {
1313
private const val TAG = "StartupTrack"
1414
var level: LoggerLevel = LoggerLevel.NONE
1515

16-
fun e(message: String) {
17-
if (level >= LoggerLevel.ERROR) print(Log.ERROR, TAG, message)
16+
fun e(block: () -> String) {
17+
if (level >= LoggerLevel.ERROR) print(Log.ERROR, TAG, block())
1818
}
1919

20-
fun d(message: String) {
21-
if (level >= LoggerLevel.DEBUG) print(Log.DEBUG, TAG, message)
20+
fun d(block: () -> String) {
21+
if (level >= LoggerLevel.DEBUG) print(Log.DEBUG, TAG, block())
2222
}
2323

2424
/**

0 commit comments

Comments
 (0)