From f755449b4a775e8ed73e7adcc458b038deab0b10 Mon Sep 17 00:00:00 2001 From: Anson Date: Sun, 19 Sep 2021 20:39:53 -0700 Subject: [PATCH] teensy plot --- Teensybenchmark.png | Bin 0 -> 40310 bytes teensybenchmark.jl | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Teensybenchmark.png create mode 100644 teensybenchmark.jl diff --git a/Teensybenchmark.png b/Teensybenchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc9e981127502bc50fc5b63fec21859ef7330aa GIT binary patch literal 40310 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

uQ{_}+GmknzS7jdI!F79&hS zXn&8k4~FqVj1h1$W%iiDoomiBWrBRzzbqyylpDMq`?pGq-e^QdZo1-CGAzCQU~%UF zA9sLfjGwG6S-o^t6PPhd-gpJCRdd`OsjFpDYW`33?JVvmxzWtTg(P)WW8u|kn=R&^ zsd;i*fS~y6>9Np=J`_NnkJl^111u1!OiC?$uww>z)S(d|vb&xSyt~E8Om9u7-ErP=@#QR9+`dqDrec@&j;Ph<_ezZ5quLloC4Wqc6VLne&wjW|7vY45$9aO@mAnUnafi6d96>RDFNa& zp`(Wpd>Nt~xjMYzUP+5dAmZ0ALJnXA-Yv~oBN0UWp2yrLG0_3lmlF0lB@Q^YM3R)Z z_q`x&uk_tpJ}wt;@E_jMaIfK$z5%+t3g$7d$!19e-;BgWPKM%B$*MPBm&uK`;=zw= z-?X_p247#;Yas8cU;>k}49B4Pf4+bTdd_b<2m=u~3w-%x=Dd1q(WH)Jakke`7~wO3 zWVo!8f^4Q!CSB$eEgqxP1 zrcbV!yINZ$h28Vr`04jdEvuHaQ@l02ddfWxj~@>^eo9;=9|o`xtZsI7u+TgHlFAqW z_O(A16}kZ)Kw2dBc1^`^%%komx@6QR(=99!cfq(tseLYam_G6NMKp2xW2oKjrCr$N zsBNbBF@ulYI3I>cy-TOmh~4?g(eLoFe@iBoUzrI%5(qwqJ|(%G!4gQuUeSlgxVq|Z z69UcKM;(o}FIC}K1ho6>n{N-jZN!^;+Vah={`xh7%9t$Gg$CJ(SM^()SxaQ+k%MRK zSp8;i0$wCu2orOgUEWb{#W0vBvI}_qhESNgZC8X~hc)FBp+N_Bq;-tFUs zY$fyWt1*5*8{LCm<&=MyqE|{~49#?P6}izNDXf@RhY#PFyHjWnCA%v5U$x4J9~V>r(Sw`B^!g52CD z9-~tNEI5ZWrO0KS3bb@)^rZ$7In{QJ33SbS<6{cK6on!Uc3^_E+W?=HxW@{NdM;AY z#N|^#59 zDqU&L?!oo^_;fC-qz6k&Wmi$fPEt~`(S#o=M@M6qzO4KJ-Cn7=Rv4ifo0n#5JHJcj zRqJD%X=?YdmS%00`WzRh^te$zff(+y*W&PEBA$!FD2Lsls8I_sm~5K@f>U*|uQc}A z8Bhm9$=IYna`B}NYKeqV!Sh6H%Lz#LIePw4Hn!ANt0<}J>e-$WQd8?j`;pJ~R%BT- z14H}+%dxT_xc5|QVZsT6`u)!rScV?f`gVkP`iHm;|90?2>C86`pnTuvsb1#&o3pyg zWssbieqrD79xXun5U{isIX&;@;ie_cnUj%$h*rLu z&PE3@jo>TFa?}RZ7}VL6%y%s}+Wjl1L4>)1jg2O%z=|Jsxwh!VwX53(!74{(yiE7p z65q6~Zp}{XW?4mOpw=e?`;x6Vut=j)O(<|!CzwUvBoSBFFLF*!d8KGr zTG=8Czw!861BseInuCdVDF`oKQ-Ergoniz+d%<4VD>L>3hQza98DbbBtOaqhtILv1|W^;(^n$ zT|Z>>q8!7~7 zzB#d&eqm`?w)(hd3Z6wnXO6E zg+QFq*SF^+L z9t6S|A<2A}uC=-Pw^vY_zBs>^X1zT2^aok>pBeosuzffPd9*O zMlBwdB?zxg7M{)*PknT$p{1^--%W&p=`=;ZcsUIwj-v zwc9BvzAz@%x6TgNU0(17>cu6v_k)GBq6mB z`}xC)_#g{JKB&Ftx97jQd_8dr7ag5hC4}(5E%%ydxzAvUtG|_`vr=9GuPpE+kbezU zKwEiELLlKR(C%?=4Y;TrtbePjDkSS=%9M17Vn^f1s=p8dRctzd_LUnO-ggKhc zEqXaJ5*d3z!~gYO8@tmi{)Yh_@3J*uDN{gag&K@riVZRX`SB$!G1Zh3?L^L v!dIXHc6^7#KKvIP47tqpZ(I2P&mr0c?0w9vsV$>6I1QqwZKPGH=@9XM@#WS? literal 0 HcmV?d00001 diff --git a/teensybenchmark.jl b/teensybenchmark.jl new file mode 100644 index 0000000..06b5031 --- /dev/null +++ b/teensybenchmark.jl @@ -0,0 +1,33 @@ +using Plots + +theme(:juno) + +table = [ + ("Teensy 4.1*", 2314), + ("Teensy 3.6", 440.72), + ("Sparkfun ESP32", 351.33), + ("Adafruit HUZZAH 32", 351.35), + ("Teensy 3.5", 265.50), + ("Adafruit Metro M4", 214.85), + ("Teensy 3.2", 168.62), + ("Arduino Due", 94.95), + ("Arduino Zero", 56.86), + ("Arduino Nano", 8.20), + ("Arduino Mega", 7.03), +] + + +names = [row[1] for row in table] +performances = [row[2] for row in table] + +let + bar( + names, + performances, + xrotation = 45, + label = "CoreMark Performance\nLarger is better", + ) + title!("Performance of Common Microcontrollers") +end + +savefig("Teensybenchmark.png")