diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt
index 50b2680d..5dcd51fa 100644
--- a/src/main/kotlin/html4tree/main.kt
+++ b/src/main/kotlin/html4tree/main.kt
@@ -124,18 +124,21 @@ fun process_dir(curr_dir: File){
"""
val index_middle = fun():String{
- var l=""
+ // ⚡ Bolt: 반복문 내에서 문자열 결합(+=) 대신 StringBuilder 사용
+ // 이렇게 하면 O(N^2)의 문자열 할당을 피할 수 있어 파일 수가 많은 디렉토리에 대해
+ // 성능이 크게 향상됩니다.
+ val l = StringBuilder()
val dir_files: MutableList = curr_dir.listFiles()?.toMutableList() ?: mutableListOf()
dir_files.sortWith(compareBy ({it.name}) )
dir_files.forEach {
val isLinkedDirectory = it.isDirectory() && !java.nio.file.Files.isSymbolicLink(it.toPath())
if((it.getName() !in exclude) && (isLinkedDirectory || !it.isDirectory())) {
- l += """ ${if (isLinkedDirectory) { "📁" } else { "▸" }} ${it.getName().escapeHtml()}"""+"\n"
+ l.append(""" ${if (isLinkedDirectory) { "📁" } else { "▸" }} ${it.getName().escapeHtml()}"""+"\n")
}
}
- return l;
+ return l.toString();
}
val index_bottom="""