Last active
March 16, 2024 00:22
-
-
Save antimon2/24bd252590482088809dce7362aa3ce7 to your computer and use it in GitHub Desktop.
MyTimes.py.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.525Z", | |
"end_time": "2024-03-16T09:16:58.236000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "versioninfo()", | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "Julia Version 1.10.2\nCommit bd47eca2c8a (2024-03-01 10:14 UTC)\nBuild Info:\n Official https://julialang.org/ release\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-15.0.7 (ORCJIT, skylake)\nThreads: 1 default, 0 interactive, 1 GC (on 12 virtual cores)\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## `AbstractTime`" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.526Z", | |
"end_time": "2024-03-16T09:16:58.582000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "abstract type AbstractTime end\n\nfunction gethour end\nfunction getminute end\nfunction getsecond end", | |
"execution_count": 2, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 2, | |
"data": { | |
"text/plain": "getsecond (generic function with 0 methods)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.526Z", | |
"end_time": "2024-03-16T09:16:58.583000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "function Base.show(io::IO, time::AbstractTime)\n print(io,\n string(gethour(time), pad=2),\n ':',\n string(getminute(time), pad=2),\n ':',\n string(getsecond(time), pad=2))\nend", | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## `MyTime`" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.527Z", | |
"end_time": "2024-03-16T09:16:58.586000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "struct MyTime <: AbstractTime\n hour::Int\n minute::Int\n second::Int\nend\n\ngethour(time::MyTime) = time.hour\ngetminute(time::MyTime) = time.minute\ngetsecond(time::MyTime) = time.second", | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 4, | |
"data": { | |
"text/plain": "getsecond (generic function with 1 method)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.528Z", | |
"end_time": "2024-03-16T09:16:58.718000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "mytime1 = MyTime(14, 28, 57)", | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 5, | |
"data": { | |
"text/plain": "14:28:57" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.529Z", | |
"end_time": "2024-03-16T09:16:58.763000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "println(mytime1)", | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "14:28:57\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.529Z", | |
"end_time": "2024-03-16T09:16:59.105000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "string(mytime1)", | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 7, | |
"data": { | |
"text/plain": "\"14:28:57\"" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## `MyTime2`" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.530Z", | |
"end_time": "2024-03-16T09:16:59.115000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "struct MyTime2 <: AbstractTime\n seconds::Int\nend\n\ngethour(time::MyTime2) = time.seconds ÷ 3600\ngetminute(time::MyTime2) = time.seconds ÷ 60 % 60\ngetsecond(time::MyTime2) = time.seconds % 60\ngetseconds(time::MyTime2) = time.seconds", | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 8, | |
"data": { | |
"text/plain": "getseconds (generic function with 1 method)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.531Z", | |
"end_time": "2024-03-16T09:16:59.128000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "function Base.show(io::IO, time::MyTime2)\n @invoke show(io, time::AbstractTime) # `invoke(show, Tuple{IO, AbstractTime}, io, time)` と同じ\n print(io, \" (\", getseconds(time), \"sec(s).)\")\nend", | |
"execution_count": 9, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.531Z", | |
"end_time": "2024-03-16T09:16:59.255000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "mytime2 = MyTime2(10000)", | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 10, | |
"data": { | |
"text/plain": "02:46:40 (10000sec(s).)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.532Z", | |
"end_time": "2024-03-16T09:16:59.275000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "string(mytime2)", | |
"execution_count": 11, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 11, | |
"data": { | |
"text/plain": "\"02:46:40 (10000sec(s).)\"" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Point" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "+ `@invoke fn(arg::AnSupertype)` のように書くと、`fn(arg)` を呼ぶときに引数の型が `AnSupertype` で定義されたメソッドを選択・実行(=invoke)できる!\n+ ※このように書けるのは Julia v1.9 以降\n + Julia v1.7/1.8 は `Base.@invoke ~` と書く必要あり\n + Julia v1.6 以前は `invoke(fn, Tuple{AnSupertype}, arg)` のように書く必要あり" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## `MyTimeWithMS`" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.532Z", | |
"end_time": "2024-03-16T09:16:59.285000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "struct MyTimeWithMS <: AbstractTime\n hms::MyTime\n ms::Int\n \n MyTimeWithMS(h, m, s, ms) = new(MyTime(h, m, s), ms)\nend\n\ngethour(time::MyTimeWithMS) = gethour(time.hms)\ngetminute(time::MyTimeWithMS) = getminute(time.hms)\ngetsecond(time::MyTimeWithMS) = getsecond(time.hms)\ngetmillisecond(time::MyTimeWithMS) = time.ms", | |
"execution_count": 12, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 12, | |
"data": { | |
"text/plain": "getmillisecond (generic function with 1 method)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.533Z", | |
"end_time": "2024-03-16T09:16:59.286000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "function Base.show(io::IO, time::MyTimeWithMS)\n @invoke show(io, time::AbstractTime) # `invoke(show, Tuple{IO, AbstractTime}, io, time)` と同じ\n print(io, '.', string(getmillisecond(time), pad=3))\nend", | |
"execution_count": 13, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.534Z", | |
"end_time": "2024-03-16T09:16:59.422000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "mytime3 = MyTimeWithMS(12, 34, 56, 789)", | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 14, | |
"data": { | |
"text/plain": "12:34:56.789" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.535Z", | |
"end_time": "2024-03-16T09:16:59.442000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "string(mytime3)", | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 15, | |
"data": { | |
"text/plain": "\"12:34:56.789\"" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Point" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "+ Julia では(構造の)**継承はできない**(`MyTime` の派生型として `MyTimeWithMS` を定義できない)ので、似たようなことをしたい場合はこのように(ほぼ必然的に)**委譲** を利用することになる。\n+ 説明のために `@invoke` を用いた実装を示したが、以下のように書いても良い: \n ```julia\n function Base.show(io::IO, time::MyTimeWithMS)\n print(io, time.hms, '.', string(getmillisecond(time), pad=3))\n end\n ```" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## ベンチマーク" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.535Z", | |
"end_time": "2024-03-16T09:16:59.626000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "using BenchmarkTools", | |
"execution_count": 16, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.536Z", | |
"end_time": "2024-03-16T09:16:59.705000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "using Random", | |
"execution_count": 17, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.536Z", | |
"end_time": "2024-03-16T09:17:03.632000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Random.seed!(1234)\n@benchmark string(MyTime(h, m, s)) setup=(h=rand(0:23);m=rand(0:59);s=rand(0:59))", | |
"execution_count": 18, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 18, | |
"data": { | |
"text/plain": "BenchmarkTools.Trial: 10000 samples with 365 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m254.304 ns\u001b[22m\u001b[39m … \u001b[35m 7.042 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 94.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m260.433 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m277.859 ns\u001b[22m\u001b[39m ± \u001b[32m211.581 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m4.17% ± 5.27%\n\n \u001b[39m▃\u001b[39m█\u001b[34m▇\u001b[39m\u001b[39m▅\u001b[39m▃\u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▆\u001b[39m▃\u001b[32m▄\u001b[39m\u001b[39m▃\u001b[39m▂\u001b[39m▃\u001b[39m▅\u001b[39m▅\u001b[39m▆\u001b[39m▄\u001b[39m▅\u001b[39m▃\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▂\u001b[39m▃\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▇\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▇\u001b[39m▇\u001b[39m▆\u001b[39m▃\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▂\u001b[39m▄\u001b[39m▂\u001b[39m▃\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▄\u001b[39m▅\u001b[39m▃\u001b[39m▃\u001b[39m▄\u001b[39m \u001b[39m█\n 254 ns\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 439 ns \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m424 bytes\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m9\u001b[39m." | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.537Z", | |
"end_time": "2024-03-16T09:17:05.274000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Random.seed!(1234)\n@benchmark string(MyTime2(secs)) setup=(secs=rand(0:60*60*24-1))", | |
"execution_count": 19, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 19, | |
"data": { | |
"text/plain": "BenchmarkTools.Trial: 10000 samples with 199 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m428.714 ns\u001b[22m\u001b[39m … \u001b[35m 10.469 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 94.56%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m448.271 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m475.761 ns\u001b[22m\u001b[39m ± \u001b[32m472.965 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m4.92% ± 4.73%\n\n \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \n \u001b[39m▁\u001b[39m▂\u001b[39m▇\u001b[39m▅\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m▇\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m▁\n 429 ns\u001b[90m Histogram: frequency by time\u001b[39m 658 ns \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m576 bytes\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m12\u001b[39m." | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2024-03-16T00:16:55.538Z", | |
"end_time": "2024-03-16T09:17:06.791000+09:00" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Random.seed!(1234)\n@benchmark string(MyTimeWithMS(h, m, s, ms)) setup=(h=rand(0:23);m=rand(0:59);s=rand(0:59);ms=rand(0:999))", | |
"execution_count": 20, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 20, | |
"data": { | |
"text/plain": "BenchmarkTools.Trial: 10000 samples with 210 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m359.471 ns\u001b[22m\u001b[39m … \u001b[35m 10.526 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 95.62%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m367.214 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m400.515 ns\u001b[22m\u001b[39m ± \u001b[32m484.719 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m6.22% ± 4.95%\n\n \u001b[39m▆\u001b[34m█\u001b[39m\u001b[39m▆\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▆\u001b[39m▄\u001b[39m▄\u001b[32m▃\u001b[39m\u001b[39m▄\u001b[39m▄\u001b[39m▄\u001b[39m▅\u001b[39m▇\u001b[39m▇\u001b[39m▆\u001b[39m▅\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▅\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▃\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m \u001b[39m█\n 359 ns\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 678 ns \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m608 bytes\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m13\u001b[39m." | |
}, | |
"metadata": {} | |
} | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "julia-1.10", | |
"display_name": "Julia 1.10.2", | |
"language": "julia" | |
}, | |
"language_info": { | |
"file_extension": ".jl", | |
"name": "julia", | |
"mimetype": "application/julia", | |
"version": "1.10.2" | |
}, | |
"gist": { | |
"id": "", | |
"data": { | |
"description": "MyTimeWithInvoke.ipynb", | |
"public": true | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[deps] | |
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" | |
[compat] | |
julia = "1.6" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment