From 96947aac50fca3423e9f6fb9f70b59346d9badbd Mon Sep 17 00:00:00 2001 From: sergeych Date: Sun, 25 Jan 2026 11:35:08 +0300 Subject: [PATCH] Add benchmark notes --- notes/bench_baseline.txt | 156 ++++++++++++++++ notes/bench_phase3_args_builder.txt | 157 ++++++++++++++++ notes/bench_phase3_args_builder_v2.txt | 156 ++++++++++++++++ notes/bench_phase3_block_hints.txt | 156 ++++++++++++++++ notes/bench_phase_next_loop_list.txt | 156 ++++++++++++++++ notes/bench_phase_range_cache.txt | 157 ++++++++++++++++ notes/bench_phase_range_iter_cache.txt | 157 ++++++++++++++++ notes/bench_phase_range_loop_cache.txt | 157 ++++++++++++++++ notes/bench_pruned.txt | 156 ++++++++++++++++ notes/perf_patch_slotB_A_current.diff | 246 +++++++++++++++++++++++++ 10 files changed, 1654 insertions(+) create mode 100644 notes/bench_baseline.txt create mode 100644 notes/bench_phase3_args_builder.txt create mode 100644 notes/bench_phase3_args_builder_v2.txt create mode 100644 notes/bench_phase3_block_hints.txt create mode 100644 notes/bench_phase_next_loop_list.txt create mode 100644 notes/bench_phase_range_cache.txt create mode 100644 notes/bench_phase_range_iter_cache.txt create mode 100644 notes/bench_phase_range_loop_cache.txt create mode 100644 notes/bench_pruned.txt create mode 100644 notes/perf_patch_slotB_A_current.diff diff --git a/notes/bench_baseline.txt b/notes/bench_baseline.txt new file mode 100644 index 0000000..993bfd5 --- /dev/null +++ b/notes/bench_baseline.txt @@ -0,0 +1,156 @@ +Reusing configuration cache. +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3317:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3713:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3724:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3783:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3894:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3950:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:358:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:377:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 261.854157 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 143.359303 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 198.727671 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 165.057842 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1212.62923 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1221.344844 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 911.390453 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 864.74467 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1258.596122 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1215.214754 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 813.8911 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 840.201914 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 721.329794 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 664.626564 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=246.670 ms, ON=247.664 ms, speedup=1.00x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 358.568027 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 357.649314 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 210.029012 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 197.480796 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 189.724828 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 171.944462 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 155.800531 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 159.326021 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 493.764263 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 473.911057 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 414.496391 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 379.154141 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 395.901223 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 361.008923 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 614.851677 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 606.423947 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 322.701469 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 332.466691 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 125.613919 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 127.188579 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 271.994907 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 269.043016 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1224.41111 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1159.586817 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 494.4744 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 420.160566 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 632.699991 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 558.980979 ms + +BUILD SUCCESSFUL in 32s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase3_args_builder.txt b/notes/bench_phase3_args_builder.txt new file mode 100644 index 0000000..e78cf48 --- /dev/null +++ b/notes/bench_phase3_args_builder.txt @@ -0,0 +1,157 @@ +Reusing configuration cache. +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Arguments.kt:171:13 Check for instance is always 'true'. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3317:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3713:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3724:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3783:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3894:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3950:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 262.456983 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 143.016118 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 204.504575 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 169.943911 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1249.839264 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1222.298584 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 901.399509 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 862.404202 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1288.885586 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1240.515769 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 818.753611 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 846.609202 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 673.750784 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 656.929851 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=277.571 ms, ON=278.333 ms, speedup=1.00x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 352.770834 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 350.420946 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 203.043167 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 191.784157 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 190.975557 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 173.62457 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 162.948512 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 161.115548 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 481.70436 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 457.081838 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 416.136033 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 377.996669 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 415.789128 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 369.789878 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 615.689206 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 604.213533 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 330.268329 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 331.937563 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 130.221941 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 129.656747 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 280.648819 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 276.585595 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1244.04352 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1181.395693 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 455.504952 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 388.443547 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 628.199793 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 574.342775 ms + +BUILD SUCCESSFUL in 32s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase3_args_builder_v2.txt b/notes/bench_phase3_args_builder_v2.txt new file mode 100644 index 0000000..6c914c4 --- /dev/null +++ b/notes/bench_phase3_args_builder_v2.txt @@ -0,0 +1,156 @@ +Reusing configuration cache. +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3317:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3713:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3724:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3783:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3894:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3950:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 261.781459 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 145.930937 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 198.865061 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 166.602828 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1247.05106 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1281.54336 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 883.211818 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 865.689378 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1233.018601 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1481.964038 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 888.881526 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 849.302933 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 665.365 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 663.883057 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=247.421 ms, ON=260.564 ms, speedup=0.95x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 353.794891 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 353.008114 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 202.620604 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 188.753098 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 187.350501 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 172.926716 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 159.856375 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 173.291963 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 484.924666 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 470.462696 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 418.550739 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 377.176886 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 398.385204 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 361.726326 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 606.153624 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 602.269093 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 327.139818 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 326.264549 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 127.960191 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 133.286108 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 289.541793 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 272.736055 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1238.097545 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1189.624292 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 447.781066 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 373.556778 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 574.938314 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 537.896984 ms + +BUILD SUCCESSFUL in 32s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase3_block_hints.txt b/notes/bench_phase3_block_hints.txt new file mode 100644 index 0000000..fd1c015 --- /dev/null +++ b/notes/bench_phase3_block_hints.txt @@ -0,0 +1,156 @@ +Reusing configuration cache. +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3320:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3716:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3727:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3786:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3897:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3953:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 253.651654 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 146.390764 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 197.226054 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 168.955589 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1256.240598 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1270.063908 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 896.05655 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 908.729676 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1275.701226 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1262.923161 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 904.80078 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 843.661706 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 693.294337 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 655.907501 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=246.831 ms, ON=249.673 ms, speedup=0.99x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 363.565902 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 357.239034 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 205.439227 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 192.811329 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 190.153039 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 171.03625 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 171.823152 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 172.076498 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 470.255577 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 452.226068 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 425.250966 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 372.065608 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 425.557633 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 398.662616 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 670.172011 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 654.491316 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 368.642342 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 371.610689 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 132.834786 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 128.264586 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 271.281035 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 265.903301 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1239.838114 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1170.640179 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 440.47053 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 372.095174 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 611.454512 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 553.868896 ms + +BUILD SUCCESSFUL in 32s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase_next_loop_list.txt b/notes/bench_phase_next_loop_list.txt new file mode 100644 index 0000000..578e0f6 --- /dev/null +++ b/notes/bench_phase_next_loop_list.txt @@ -0,0 +1,156 @@ +Reusing configuration cache. +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3096:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3128:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3161:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3372:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3768:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3779:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3838:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3949:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:4005:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 268.708055 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 146.48493 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 200.079276 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 163.315912 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1553.293592 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1473.171537 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 1069.276106 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 938.902009 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1272.837347 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1232.000995 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 821.533602 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 845.562175 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 713.778041 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 658.92245 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=258.841 ms, ON=260.836 ms, speedup=0.99x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 359.929596 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 355.440048 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 201.239366 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 193.027976 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 193.231822 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 169.126707 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 152.807956 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 155.12379 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 487.13174 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 458.34973 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 420.451323 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 380.196618 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 407.040834 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 376.63534 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 651.947325 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 665.276754 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 343.185945 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 333.229274 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 128.027033 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 128.223778 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 272.765371 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 267.282587 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1222.526972 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1156.325094 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 454.25713 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 435.042988 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 646.493027 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 581.51493 ms + +BUILD SUCCESSFUL in 33s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase_range_cache.txt b/notes/bench_phase_range_cache.txt new file mode 100644 index 0000000..2c2fb22 --- /dev/null +++ b/notes/bench_phase_range_cache.txt @@ -0,0 +1,157 @@ +Reusing configuration cache. +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3317:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3713:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3724:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3783:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3894:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3950:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt:169:37 Redundant call of conversion method. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 261.750618 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 146.453823 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 195.212879 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 162.023578 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1500.893007 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1470.571042 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 1069.296265 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 979.876815 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1282.033869 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1219.102212 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 817.077586 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 836.022994 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 694.858051 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 657.045255 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=257.782 ms, ON=248.041 ms, speedup=1.04x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 352.616677 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 342.878941 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 199.536636 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 184.094618 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 192.697462 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 169.343891 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 172.952628 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 175.110539 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 474.235439 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 447.779765 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 416.685434 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 385.882443 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 404.699708 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 363.070008 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 624.839841 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 615.958067 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 329.06723 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 345.786502 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 127.328515 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 128.997015 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 275.285879 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 272.488545 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1007.052847 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 942.271572 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 501.928282 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 431.511816 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 713.844255 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 670.054138 ms + +BUILD SUCCESSFUL in 32s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase_range_iter_cache.txt b/notes/bench_phase_range_iter_cache.txt new file mode 100644 index 0000000..85be705 --- /dev/null +++ b/notes/bench_phase_range_iter_cache.txt @@ -0,0 +1,157 @@ +Reusing configuration cache. +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3077:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3142:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3350:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3746:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3757:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3816:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3927:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3983:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt:169:37 Redundant call of conversion method. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 255.650854 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 145.478367 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 194.190057 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 161.917102 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1553.057072 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1240.793002 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 944.216355 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 1009.585989 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1539.226472 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1454.032021 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 977.674848 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 990.058604 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 853.990613 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 786.133583 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=268.317 ms, ON=280.306 ms, speedup=0.96x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 373.337982 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 363.041028 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 203.456039 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 189.400538 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 191.685426 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 172.746472 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 172.601148 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 175.298872 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 480.488372 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 449.23481 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 428.089067 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 392.908699 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 409.659747 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 367.216414 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 608.613603 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 626.039278 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 325.012701 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 321.701777 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 127.06677 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 129.773497 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 279.046361 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 271.50303 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1022.352328 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 964.474767 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 496.707269 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 442.890336 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 695.24589 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 579.05104 ms + +BUILD SUCCESSFUL in 34s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_phase_range_loop_cache.txt b/notes/bench_phase_range_loop_cache.txt new file mode 100644 index 0000000..009d78a --- /dev/null +++ b/notes/bench_phase_range_loop_cache.txt @@ -0,0 +1,157 @@ +Reusing configuration cache. +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3077:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3142:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3350:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3746:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3757:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3816:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3927:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3983:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt:169:37 Redundant call of conversion method. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 255.197357 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 145.587919 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 192.491336 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 162.773639 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1527.164983 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1468.249877 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 1067.915333 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 1006.785753 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1525.341699 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1272.182191 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 820.632254 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 840.236564 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 688.095527 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 655.496511 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=257.927 ms, ON=256.999 ms, speedup=1.00x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 354.975875 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 345.167837 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 202.94016 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 189.847027 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 194.183153 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 166.705436 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 158.344393 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 171.7144 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 485.762962 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 451.642059 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 422.33805 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 381.000391 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 421.92221 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 374.912331 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 619.019405 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 607.095909 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 344.680073 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 370.68396 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 123.837196 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 127.987498 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 275.825602 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 272.281156 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1004.34663 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 950.919274 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 467.891003 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 380.721475 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 608.237558 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 611.825714 ms + +BUILD SUCCESSFUL in 33s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/bench_pruned.txt b/notes/bench_pruned.txt new file mode 100644 index 0000000..2bee9f5 --- /dev/null +++ b/notes/bench_pruned.txt @@ -0,0 +1,156 @@ +Reusing configuration cache. +> Task :lynglib:jvmProcessResources NO-SOURCE +> Task :lyngio:jvmProcessResources NO-SOURCE +> Task :lynglib:jvmTestProcessResources NO-SOURCE +> Task :lynglib:kmpPartiallyResolvedDependenciesChecker +> Task :lyngio:kmpPartiallyResolvedDependenciesChecker +> Task :lynglib:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lyngio:processJvmMainResources SKIPPED +> Task :lynglib:processJvmMainResources SKIPPED +> Task :lynglib:processJvmTestResources SKIPPED +> Task :lyngio:checkKotlinGradlePluginConfigurationErrors SKIPPED +> Task :lynglib:generateLyngStdlib +> Task :lynglib:generateBuildKonfig + +> Task :lynglib:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:228:25 'when' is exhaustive so 'else' is redundant here. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3044:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3076:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3109:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3317:46 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3713:42 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3724:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3783:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3894:62 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Compiler.kt:3950:66 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/Scope.kt:727:31 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:507:50 The corresponding parameter in the supertype 'Statement' is named 'scope'. This may cause problems when calling this function with named arguments. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/Obj.kt:820:57 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:33:32 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:158:39 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:177:64 'val monthNumber: Int' is deprecated. Use the 'month' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:179:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:181:64 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjDateTime.kt:266:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:35:31 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:102:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:106:24 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:117:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:119:38 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:123:29 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:125:41 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:139:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:144:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:149:25 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:202:69 'val dayOfMonth: Int' is deprecated. Use the 'day' property instead. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:212:28 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:222:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInstant.kt:234:21 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:432:35 No cast needed. +w: file:///home/sergeych/dev/ling_lib/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt:451:35 No cast needed. + +> Task :lynglib:compileJvmMainJava NO-SOURCE +> Task :lynglib:jvmMainClasses +> Task :lynglib:jvmJar + +> Task :lyngio:compileKotlinJvm +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:192:71 'typealias Instant = Instant' is deprecated. This type is deprecated in favor of `kotlin.time.Instant`. +w: file:///home/sergeych/dev/ling_lib/lyngio/src/commonMain/kotlin/net/sergeych/lyng/io/fs/LyngFsModule.kt:315:51 Redundant call of conversion method. + +> Task :lyngio:compileJvmMainJava NO-SOURCE +> Task :lyngio:jvmMainClasses +> Task :lyngio:jvmJar +> Task :lynglib:compileTestKotlinJvm +> Task :lynglib:compileJvmTestJava NO-SOURCE +> Task :lynglib:jvmTestClasses + +> Task :lynglib:jvmTest + +ArithmeticBenchmarkTest[jvm] > benchmarkIntArithmeticAndComparisons[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=OFF]: 257.626421 ms + [DEBUG_LOG] [BENCH] int-sum x400000 [PRIMITIVE_FASTOPS=ON]: 145.74696 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=OFF]: 185.585751 ms + [DEBUG_LOG] [BENCH] int-cmp x400000 [PRIMITIVE_FASTOPS=ON]: 163.520035 ms + +CallBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1505.046393 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1314.629855 ms + +CallBenchmarkTest[jvm] > benchmarkSimpleFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=OFF]: 894.419862 ms + [DEBUG_LOG] [BENCH] calls x300000 [ARG_BUILDER=ON]: 872.837744 ms + +CallMixedArityBenchmarkTest[jvm] > benchmarkMixedArityCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=OFF]: 1240.254948 ms + [DEBUG_LOG] [BENCH] mixed-arity x200000 [ARG_BUILDER=ON]: 1212.818849 ms + +CallPoolingBenchmarkTest[jvm] > benchmarkScopePoolingOnFunctionCalls[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=OFF]: 809.588732 ms + [DEBUG_LOG] [BENCH] call-pooling x300000 [SCOPE_POOL=ON]: 925.016684 ms + +CallSplatBenchmarkTest[jvm] > benchmarkCallsWithSplatArgs[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=OFF]: 721.186901 ms + [DEBUG_LOG] [BENCH] splat-calls x120000 [ARG_BUILDER=ON]: 637.576161 ms + +ConcurrencyCallBenchmarkTest[jvm] > benchmark_multithread_calls_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] ConcurrencyCallBenchmark workers=8 iters=15000 each: OFF=262.726 ms, ON=255.278 ms, speedup=1.03x + +ExpressionBenchmarkTest[jvm] > benchmarkExpressionChains[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=OFF]: 362.438514 ms + [DEBUG_LOG] [BENCH] expr-chain x350000 [RVAL_FASTPATH=ON]: 340.324569 ms + +ExpressionBenchmarkTest[jvm] > benchmarkListIndexReads[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=OFF]: 195.843032 ms + [DEBUG_LOG] [BENCH] list-index x350000 [RVAL_FASTPATH=ON]: 186.899727 ms + +ExpressionBenchmarkTest[jvm] > benchmarkFieldReadPureReceiver[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=OFF]: 184.415897 ms + [DEBUG_LOG] [BENCH] field-read x300000 [RVAL_FASTPATH=ON]: 167.959195 ms + +ListOpsBenchmarkTest[jvm] > benchmarkSumInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=OFF]: 162.448057 ms + [DEBUG_LOG] [BENCH] list-sum x200000 [PRIMITIVE_FASTOPS=ON]: 159.74125 ms + +ListOpsBenchmarkTest[jvm] > benchmarkContainsInts[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=OFF]: 481.042413 ms + [DEBUG_LOG] [BENCH] list-contains x1000000 [PRIMITIVE_FASTOPS=ON]: 455.885378 ms + +LocalVarBenchmarkTest[jvm] > benchmarkLocalReadsWrites_off_on[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] locals x400000 [PIC=OFF, FAST_LOCAL=OFF]: 409.51578 ms + [DEBUG_LOG] [BENCH] locals x400000 [PIC=ON, FAST_LOCAL=ON]: 372.056401 ms + +MethodPoolingBenchmarkTest[jvm] > benchmarkInstanceMethodCallsWithPooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=OFF]: 388.436636 ms + [DEBUG_LOG] [BENCH] method-loop x300000 [SCOPE_POOL=ON]: 361.562638 ms + +MixedBenchmarkTest[jvm] > benchmarkMixedWorkloadRvalFastpath[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=OFF]: 631.060283 ms + [DEBUG_LOG] [BENCH] mixed x250000 [RVAL_FASTPATH=ON]: 596.452285 ms + +PicBenchmarkTest[jvm] > benchmarkMethodPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Method PIC=OFF, POOL=OFF: 325.619575 ms + [DEBUG_LOG] [BENCH] Method PIC=ON, POOL=ON: 323.664554 ms + +PicBenchmarkTest[jvm] > benchmarkFieldGetSetPic[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Field PIC=OFF: 130.20855 ms + [DEBUG_LOG] [BENCH] Field PIC=ON: 125.922059 ms + +PicBenchmarkTest[jvm] > benchmarkLoopScopePooling[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] Loop Pool=OFF: 265.902703 ms + [DEBUG_LOG] [BENCH] Loop Pool=ON: 264.289188 ms + +RangeBenchmarkTest[jvm] > benchmarkIntRangeForIn[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=OFF]: 1218.053408 ms + [DEBUG_LOG] [BENCH] range-for-in x5000 (inner 0..999) [PRIMITIVE_FASTOPS=ON]: 1156.935646 ms + +RegexBenchmarkTest[jvm] > benchmarkDynamicPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=OFF]: 433.071618 ms + [DEBUG_LOG] [BENCH] regex-dynamic x300000 [REGEX_CACHE=ON]: 371.30824 ms + +RegexBenchmarkTest[jvm] > benchmarkLiteralPatternMatches[jvm] STANDARD_OUT + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=OFF]: 570.399724 ms + [DEBUG_LOG] [BENCH] regex-literal x500000 [REGEX_CACHE=ON]: 533.532049 ms + +BUILD SUCCESSFUL in 33s +10 actionable tasks: 10 executed +Configuration cache entry reused. diff --git a/notes/perf_patch_slotB_A_current.diff b/notes/perf_patch_slotB_A_current.diff new file mode 100644 index 0000000..5131c30 --- /dev/null +++ b/notes/perf_patch_slotB_A_current.diff @@ -0,0 +1,246 @@ +diff --git a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt +index 0671102..d4cb6ba 100644 +--- a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt ++++ b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjInt.kt +@@ -55,7 +55,11 @@ class ObjInt(val value: Long, override val isConst: Boolean = false) : Obj(), Nu + + override suspend fun compareTo(scope: Scope, other: Obj): Int { + if (other !is Numeric) return -2 +- return value.compareTo(other.doubleValue) ++ return if (other is ObjInt) { ++ value.compareTo(other.value) ++ } else { ++ doubleValue.compareTo(other.doubleValue) ++ } + } + + override fun toString(): String = value.toString() +@@ -192,4 +196,4 @@ class ObjInt(val value: Long, override val isConst: Boolean = false) : Obj(), Nu + } + + fun Int.toObj() = ObjInt.of(this.toLong()) +-fun Long.toObj() = ObjInt.of(this) +\ No newline at end of file ++fun Long.toObj() = ObjInt.of(this) +diff --git a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRange.kt b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRange.kt +index 0c631d0..dc61c66 100644 +--- a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRange.kt ++++ b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRange.kt +@@ -96,6 +96,30 @@ class ObjRange(val start: Obj?, val end: Obj?, val isEndInclusive: Boolean) : Ob + if (other is ObjRange) + return containsRange(scope, other) + ++ if (net.sergeych.lyng.PerfFlags.PRIMITIVE_FASTOPS) { ++ if (start is ObjInt && end is ObjInt && other is ObjInt) { ++ val s = start.value ++ val e = end.value ++ val v = other.value ++ if (v < s) return false ++ return if (isEndInclusive) v <= e else v < e ++ } ++ if (start is ObjChar && end is ObjChar && other is ObjChar) { ++ val s = start.value ++ val e = end.value ++ val v = other.value ++ if (v < s) return false ++ return if (isEndInclusive) v <= e else v < e ++ } ++ if (start is ObjString && end is ObjString && other is ObjString) { ++ val s = start.value ++ val e = end.value ++ val v = other.value ++ if (v < s) return false ++ return if (isEndInclusive) v <= e else v < e ++ } ++ } ++ + if (start == null && end == null) return true + if (start != null) { + if (start.compareTo(scope, other) > 0) return false +@@ -241,4 +265,3 @@ class ObjRange(val start: Obj?, val end: Obj?, val isEndInclusive: Boolean) : Ob + } + } + } +- +diff --git a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt +index 2dd0ae6..76e56d4 100644 +--- a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt ++++ b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt +@@ -152,6 +152,90 @@ class BinaryOpRef(private val op: BinOp, private val left: ObjRef, private val r + + // Primitive fast paths for common cases (guarded by PerfFlags.PRIMITIVE_FASTOPS) + if (PerfFlags.PRIMITIVE_FASTOPS) { ++ // Fast range equality: avoid compareTo/equals for ObjRange when possible ++ if ((op == BinOp.EQ || op == BinOp.NEQ) && a is ObjRange && b is ObjRange) { ++ val eq = (a.start == b.start && a.end == b.end) ++ if (PerfFlags.PIC_DEBUG_COUNTERS) PerfStats.primitiveFastOpsHit++ ++ return if (op == BinOp.EQ) { ++ if (eq) ObjTrue else ObjFalse ++ } else { ++ if (eq) ObjFalse else ObjTrue ++ } ++ } ++ // Fast membership for common containers ++ if (op == BinOp.IN || op == BinOp.NOTIN) { ++ val inResult: Boolean? = when (b) { ++ is ObjList -> { ++ if (a is ObjInt) { ++ var i = 0 ++ val sz = b.list.size ++ var found = false ++ while (i < sz) { ++ val v = b.list[i] ++ if (v is ObjInt && v.value == a.value) { ++ found = true ++ break ++ } ++ i++ ++ } ++ found ++ } else { ++ b.list.contains(a) ++ } ++ } ++ is ObjSet -> b.set.contains(a) ++ is ObjMap -> b.map.containsKey(a) ++ is ObjRange -> { ++ when (a) { ++ is ObjInt -> { ++ val s = b.start as? ObjInt ++ val e = b.end as? ObjInt ++ val v = a.value ++ if (s == null && e == null) null ++ else { ++ if (s != null && v < s.value) false ++ else if (e != null) if (b.isEndInclusive) v <= e.value else v < e.value else true ++ } ++ } ++ is ObjChar -> { ++ val s = b.start as? ObjChar ++ val e = b.end as? ObjChar ++ val v = a.value ++ if (s == null && e == null) null ++ else { ++ if (s != null && v < s.value) false ++ else if (e != null) if (b.isEndInclusive) v <= e.value else v < e.value else true ++ } ++ } ++ is ObjString -> { ++ val s = b.start as? ObjString ++ val e = b.end as? ObjString ++ val v = a.value ++ if (s == null && e == null) null ++ else { ++ if (s != null && v < s.value) false ++ else if (e != null) if (b.isEndInclusive) v <= e.value else v < e.value else true ++ } ++ } ++ else -> null ++ } ++ } ++ is ObjString -> when (a) { ++ is ObjString -> b.value.contains(a.value) ++ is ObjChar -> b.value.contains(a.value) ++ else -> null ++ } ++ else -> null ++ } ++ if (inResult != null) { ++ if (PerfFlags.PIC_DEBUG_COUNTERS) PerfStats.primitiveFastOpsHit++ ++ return if (op == BinOp.IN) { ++ if (inResult) ObjTrue else ObjFalse ++ } else { ++ if (inResult) ObjFalse else ObjTrue ++ } ++ } ++ } + // Fast boolean ops when both operands are ObjBool + if (a is ObjBool && b is ObjBool) { + val r: Obj? = when (op) { +@@ -604,7 +688,37 @@ class AssignOpRef( + else -> null + } + if (inPlace != null) return inPlace.asReadonly +- val result: Obj = when (op) { ++ val fast: Obj? = if (PerfFlags.PRIMITIVE_FASTOPS) { ++ when { ++ x is ObjInt && y is ObjInt -> { ++ val xv = x.value ++ val yv = y.value ++ when (op) { ++ BinOp.PLUS -> ObjInt.of(xv + yv) ++ BinOp.MINUS -> ObjInt.of(xv - yv) ++ BinOp.STAR -> ObjInt.of(xv * yv) ++ BinOp.SLASH -> if (yv != 0L) ObjInt.of(xv / yv) else null ++ BinOp.PERCENT -> if (yv != 0L) ObjInt.of(xv % yv) else null ++ else -> null ++ } ++ } ++ (x is ObjInt || x is ObjReal) && (y is ObjInt || y is ObjReal) -> { ++ val xv = if (x is ObjInt) x.doubleValue else (x as ObjReal).value ++ val yv = if (y is ObjInt) y.doubleValue else (y as ObjReal).value ++ when (op) { ++ BinOp.PLUS -> ObjReal.of(xv + yv) ++ BinOp.MINUS -> ObjReal.of(xv - yv) ++ BinOp.STAR -> ObjReal.of(xv * yv) ++ BinOp.SLASH -> ObjReal.of(xv / yv) ++ BinOp.PERCENT -> ObjReal.of(xv % yv) ++ else -> null ++ } ++ } ++ x is ObjString && op == BinOp.PLUS -> ObjString(x.value + y.toString()) ++ else -> null ++ } ++ } else null ++ val result: Obj = fast ?: when (op) { + BinOp.PLUS -> x.plus(scope, y) + BinOp.MINUS -> x.minus(scope, y) + BinOp.STAR -> x.mul(scope, y) +@@ -632,7 +746,15 @@ class IncDecRef( + // We now treat numbers as immutable and always perform write-back via setAt. + // This avoids issues where literals are shared and mutated in-place. + // For post-inc: return ORIGINAL value; for pre-inc: return NEW value. +- val result = if (isIncrement) v.plus(scope, one) else v.minus(scope, one) ++ val result = if (PerfFlags.PRIMITIVE_FASTOPS) { ++ when (v) { ++ is ObjInt -> if (isIncrement) ObjInt.of(v.value + 1L) else ObjInt.of(v.value - 1L) ++ is ObjReal -> if (isIncrement) ObjReal.of(v.value + 1.0) else ObjReal.of(v.value - 1.0) ++ else -> if (isIncrement) v.plus(scope, one) else v.minus(scope, one) ++ } ++ } else { ++ if (isIncrement) v.plus(scope, one) else v.minus(scope, one) ++ } + target.setAt(atPos, scope, result) + return (if (isPost) v else result).asReadonly + } +@@ -1246,8 +1368,8 @@ class IndexRef( + val i = idx.toInt() + return ObjChar(base.value[i]).asMutable + } +- // Map[String] fast path (common case); return ObjNull if absent +- if (base is ObjMap && idx is ObjString) { ++ // Map[String/Int/Char] fast path (common cases); return ObjNull if absent ++ if (base is ObjMap && (idx is ObjString || idx is ObjInt || idx is ObjChar)) { + val v = base.map[idx] ?: ObjNull + return v.asMutable + } +@@ -1321,8 +1443,8 @@ class IndexRef( + val i = idx.toInt() + return ObjChar(base.value[i]) + } +- // Map[String] fast path +- if (base is ObjMap && idx is ObjString) { ++ // Map[String/Int/Char] fast path ++ if (base is ObjMap && (idx is ObjString || idx is ObjInt || idx is ObjChar)) { + return base.map[idx] ?: ObjNull + } + if (PerfFlags.INDEX_PIC) { +@@ -1393,7 +1515,7 @@ class IndexRef( + return + } + // Direct write fast path for ObjMap + ObjString +- if (base is ObjMap && idx is ObjString) { ++ if (base is ObjMap && (idx is ObjString || idx is ObjInt || idx is ObjChar)) { + base.map[idx] = newValue + return + }