From 68bc82c11b34bd61d52626dc460854d57a9e2f15 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 3 Nov 2019 22:45:30 +0100 Subject: [PATCH] Simplify README. --- README.md | 63 +++------------------------------------------- doc/compare.png | Bin 26263 -> 0 bytes doc/histogram.png | Bin 16392 -> 0 bytes doc/locks.png | Bin 8503 -> 0 bytes doc/messages.png | Bin 4704 -> 0 bytes doc/plot.png | Bin 9534 -> 0 bytes 6 files changed, 4 insertions(+), 59 deletions(-) delete mode 100644 doc/compare.png delete mode 100644 doc/histogram.png delete mode 100644 doc/locks.png delete mode 100644 doc/messages.png delete mode 100644 doc/plot.png diff --git a/README.md b/README.md index fd030fce..b011c400 100644 --- a/README.md +++ b/README.md @@ -2,72 +2,17 @@ [![Build status](https://ci.appveyor.com/api/projects/status/968a88arq06gm3el/branch/master?svg=true)](https://ci.appveyor.com/project/wolfpld/tracy/branch/master) -Tracy is a real time, nanosecond resolution frame profiler that can be used for remote or embedded telemetry of your application. It can profile CPU (C, C++11, Lua), GPU (OpenGL, Vulkan) and memory. It also can display locks held by threads and their interactions with each other. - ![](doc/profiler.png) -The following compilers are supported: +### A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications. -- MSVC -- gcc -- clang +Tracy supports profiling CPU (C, C++11, Lua), GPU (OpenGL, Vulkan), memory, locks, context switches, per-frame screenshots and more. -The following platforms are confirmed to be working (this is not a complete list): +For usage instructions, consult the user manual [at the following address](https://bitbucket.org/wolfpld/tracy/downloads/tracy.pdf). -- Windows (x86, x64) -- Linux (x86, x64, ARM, ARM64) -- Android (ARM, x86) -- FreeBSD (x64) -- Cygwin (x64) -- WSL (x64) -- OSX (x64) +[Changelog](NEWS) [Introduction to Tracy Profiler v0.2](https://www.youtube.com/watch?v=fB5B46lbapc) [New features in Tracy Profiler v0.3](https://www.youtube.com/watch?v=3SXpDpDh2Uo) [New features in Tracy Profiler v0.4](https://www.youtube.com/watch?v=eAkgkaO8B9o) [New features in Tracy Profiler v0.5](https://www.youtube.com/watch?v=P6E7qLMmzTQ) - -[List of changes.](NEWS) - -### High-level overview - -![](doc/design.svg) - -Tracy is split into client and server side. The client side collects events using a high-efficiency queue and awaits for an incoming connection. The server part connects to client and receives collected data from the client, which is then reconstructed into a viewable timeline. The transfer is performed using a TCP connection. - -### Performance impact - -To check how much slowdown is introduced by using Tracy, I have profiled [etcpak](https://bitbucket.org/wolfpld/etcpak), which is the fastest ETC texture compression utility there is. I used an 8192×8192 test image as input data and instrumented everything down to the 4×4 pixel block compression function (that's 4 million blocks to compress). It should be noted that Tracy needs to calibrate its internal timers at each run. This introduces a delay of 115 ms (on my machine), which is negligible when doing lengthy profiling runs, but it skews the results of etcpak timing. The following times have this delay subtracted, to give focus on zone collection impact, which is the thing that really matters here. - -| Scenario | Zones | Clean run | Profiling run | Difference | -|-------------------------------------------------------|---------|-----------|---------------|------------| -| Compression of an image to ETC1 format | 4194568 | 0.94 s | 1.003 s | +0.063 s | -| Compression of an image to ETC2 format, with mip-maps | 5592822 | 1.034 s | 1.119 s | +0.085 s | - -In both scenarios the per-zone time cost is at ~15 ns. This is in line with the measured 8 ns single event collection time (each zone has to report start and end event). - -## Usage instructions - -The user manual for Tracy is available [at the following address](https://bitbucket.org/wolfpld/tracy/downloads/tracy.pdf). It provides information about the integration process, required code markup and so on. - -## Features - -#### Histogram of function execution times - -![](doc/histogram.png) - -#### Comparison of two profiling runs - -![](doc/compare.png) - -#### Marking locks - -![](doc/locks.png) - -#### Plotting data - -![](doc/plot.png) - -#### Message log - -![](doc/messages.png) diff --git a/doc/compare.png b/doc/compare.png deleted file mode 100644 index 8afca00ec3c8d88bd8002a53fc6cf5624ff47297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26263 zcma%jby$_()-8%6Dcv2?Ae%-S>F#c%q(r*AK|s1Yq!j6vlJ4#x z-uutX18nwQ>wVXpbIdWuBt%|T3<(|&9tsKyNkUv$5en+*GbpGh`>;>JPj=dmvA`E- zJ0S^WSXkJ(6}e?7C=)peVL@f**}b$NFHDu|2d@Vqc!s*22o#|=G*LomisIzs6cnUz zuXuB#;GfB3C@A<~s@fyK_J!)N?1p9s7iZI{2>PP99;(D2-1F7F__?xJ_o~U`#I@z* zjnhFA3yW#`mU}u2i&OeTfnpN65bVyzEx+RvQh$`t$II^rj*siqLa?Mw1cQjMr2a?D zsQ>&b>Lr?AW@dAGy2tcXE)}Z&1jk~%SEh;{ejFFPZ?x*&kxH%#f9yi3+3#HJu-5MA zyZF~N*XLSu&@cAR52|hsxaV{l_C66+@w-oZo~%FFvmRynpnP^UGI&tfpe-zZPZXEpq7Uf!Up6ktgF7L~Ja*W-sizrp50An^>2G^88-Y-uPtfX>5yp@pHG&r(_WIZ<*$@ zOfDzhG)gc8Z{B?^eWri!F4gH!V>xpxes|GuEf*`7!N+D6)&6jQ!O!19deVCt9Pl=f z6Td=DsX+Gp7ti~6;VtCf|NipoZz6*f+Ar7YU;0HfhOFKN3ra{dAK&Dd4ZSh><)K9bb4nO0DCLc~H)F(MZ?*&; zy*96(8u9`C8k%hQnrDo@t3>+#kZKCF+i=9mi{3k!uTxqw@0)trt0O8sZ^2pTPm*T09X;_1srbDk}qO=*$A zSWK1(H7+mfyBz7a`#%3o0r6I7yG%_>Ie0595@0>^9rrju)GyIKZ2RZH0IEgP??J6^ z;*~HJfjH8tK72GUdC{%p4Hh>$aui6?ygh)|?&ij5`n zP##gUZF7MA+E_qd#dzi^Bsd%qi+HL`r|JEK9t8vz0ioV*OV-LNFP$#svtU@hp%Hn< zNAciXg5Z>2zltd3WCJS2>Dr#?U#mNx{Zg6nh<2H)wo;i#Nqx82=wfXxdlGPd9zRwf zm&R$ET1mm}_R(;adR80RIk{V6VvB`4rRm&}v50SJW~R4uSw^c^{Y+=$RW(dDaqyGC z!JF?b3|f5XdInIuZs&*;EA7Y}W^)zU#=Q~Rv0~vklowzR9Dg4b%jMDAoDLGsS{sW4 z+{T-OC7)XuW|QF*b`O8~=P`jhV-<*@t;1PFhFlcyx;_zK94tfx@6;@LwqrPN_TwTU zyd~5ZO=sQl8|Dedrg-T9fd;o6=qFV0#__$_lY4CPieB} zdwDA(4QnG(Y(G@hyL)pBBum7quMg?1_%@BS!~q-UC1yz<$<@7bAlX0|TGY2xc666BBqIB~1vY^Y#xP zM_gR=p)_s_X=GTx>Iyf*;kSW^B_*j`mecYP@8A0o$))V#8bY;|TzgoUBB*fc+fcoW@k zY`())L%WS$%*v2};LdM`@=?ep9oVmR1w0^0I@Nn;x3@H|1@)g+M}kjIzDGqt?Y~d_ zMfs|8WYaYq$J=)D&U9M6(WDs7Fv^-&Kcuv`tGBSg+CJooG%TLCEtb#V`TkP#`D`EF z;|+!B6c{;i2zlZWWH@X|KzOt5l8WJek!B?yrO-S=5AlX8(`z}{n_(%CP2+LDoH{u% z%%kah|BM-A+c=Jm?ZWGmK89~QZ-ZV=PE8G_X*umq%BUAPlRdq6Sr^awiH^ED6B2BKi-&VTFr(+`Syrf|q%@GC&nu0XylT9ApGZca@Ib=VU1Z}QSB~67 zeLt94S$Q;}rsq2mvQ+>L-DHp4-yq5SMW`3Pb zsc2|GfBXm&8>=3hp!Lq=B@S~gc2kwY^-B25o;@Y?#3ACrQ+-Hq%>lo7=Tz*dlWPr5 z6jfw`Gy7fcVvocMru40ZMrM9!!X6C!bdi}M|9aV3ET*fa(F{i7OykfPll0BBs^*qju zwe|&4mRCkji{6=kK(CYNs&+BA8#bGHs+t>GLz`Nqb zMZY-#MC})D;lV@inJ-XhUS^ z%gbZGtuNThdTXP$Yi`C#@-Z0S6K6zIk4Qe^G-F|7dl~=eolB7x08Z+oWzAVFRBT@G zBvRSTP6yh&Avhw>b^b1f+YdXOh!ELo7z_Hv3(V{cb`-zX#rt-{QG;Egm_?>h4w%Ta z$m`bfBt5Sv&48w*_`I6k>KbKVzbBQ8EmS51i8Qs&asStJIo!Yr(w=uLrjG7GNe=ps z)yUvVdkdpxr2r1KJGAWq$C5k4{v6#`diRTk7Afw`rg%t!ikFP1DtmrSzf(+gI z-V1v`#8XR*i)(2yN6f3DsYy*c-{AE6m2tS)dW;-K!pSlS*JTw4-il;BNn7(oc=j9G(2;{Cr=_$7hk&p}GwqXG*F_H15pW z_|~!a->6p9KIlht6UAHyArr5n*gIG%D3J0z3Gjj5XPPv9CtXxlCbZ3JB2D(w*hNM` zumERx+5BjsciE?O-~0P_Tt2>otSp~dLlm5C1U)lo$cNvj_(Wr;%4bpIY7wVM7v)1= zpz{z*ZuT%46K*aJyM6{1Cyy?4-ks0ce30tlXlqN?p6=8T_9p4w8cZALHtP-D+OuS+ zJH5ZV0hmVEOQ*?IrNeuBes}7ti)%ftCi3PUXTu2&5^BeK&lgy-drn0TF@u@Vxz8nH zja_H)EF?b_E24lWn4TRao?iK}=$oFuuuE7HY3`uJQQVB^x)EpT~C zVcgIfTyM_zD=Uww`7gAac%;Xm_#%%N1_mUW;$<{vI{?%xDZOb`fY{2)dQ#eBVuEUj zln%4hgh-T|8&1sohUmEn`nG-R$FyAhoPX>~$+>wJ+VnficDGtQoN*q231?fiGY2Z^Pl=99q`RwsY+5 zGsLFj!P7A?K<>@S{vLjJaN+^{k>?YE$Rm`x;q%I1WL&MUgwE~<5|7u z7m&;Fa0%Gk;^JZf9UUDH58lUq#nGj5oQhhA$8kSi9l!au*{7>4Cmno8oV{l$-&m^E za=8+;|I;ZuN={C8QEWWq;uF{ z$ueNY$6*?f=9@bmE+WC7D9mH^UaCqjVWhl|u%Xr!+Aqmz7d~6!tO(qmSz>&^^lvE}Q+K)u_;JVsqOgN}W=g^Id!eeRQI?J7r?O ziVInsolm;`=`B*8gqE(vE-(K+`51nIBqlbIpl2<3HJs&lc2;G#HEDn~GwrN?PvEP+ zGdfjcHCJ?bDd_GVYftRe^SN`IWak(<^^#l+uXF81=v-TpZi6G6Q20h)0xkOl-jcj~ z?P?dX7kGT=krKfLui34&Un9z%ARW7}Cqj-tF3D^6C5DmyJf#rgq8IGQZ81W<4+;tr zXM`Au!e!@%hMxHQtJ{h(ayTW|meJB~qy8%eXXA7ud0u{asCMIswizb=`aUG%%TZDM zRZFcXcIeed_4##DKA+njVsrG5ADL0;a7(cM1>K%Pdx(BQWI0~|hhek=vDs=#6AzCl zgQ2OI=%MYniRvpmqb2S=I zdfPy{DpfD<@4ik?muVSv`uN>?qaoz+sim79S!L|>|D1eEgccXeLdHi&!EUE+@2WqZ z8{Cl^T#NV+rSMYrB~MOnLrdW&7`e;rH#tjL24hP-6Ar^DU%`HL?+rdN4(?ful6QK; z$Wg=i%Ok@6Cw%m2ZFnCKUgH<&>~i_?_YwZV@?Li{C9nElJobTV0H7w<)A1w!y(onw zL4_FKY$_4TP2mmzF<*7ZxS@#4c;^>^Vy`xS5a;Txir2!tLW&T_O-fwoBW|GN zmH7K+-U(jQ!I$*MZCE}2A_xI5N*P1 zJ=fdIWAd4$AYyB?k|PVQWbocl=n05g79Q;2zrcG zT~N?VLVD`Nz=!=`_@GN(=ej!O4KI`xEkamRYHLfDl04CBB;B7}4kZg4Q0#ej4~K-{KH(eVPRrtvpp+Xa{pa5 zKK>6pw0LLz`Kxii%g7QY&Np3;vsdO}OCA>ktDRx?XVTKr@2strzP}W<`@K03gPeo6 z{ly!qsHB9Ij7+%p$$P^^D7BHo&BMb|sXrO{CA+i8SR6XWx|WIxjYlez0X>-q6_v%6 zKPNA*Lz_ROKH0amCIH77iExo@2?sCf7yhaAyW>$Q1kY>p$WzoU0ci)3)tUr7PX&)@ zK59TqJvH|CL?)V#3`hJqPDH5lZ|u0yW8ihtlMh;IjH2Q`gVuU?==LX?)Qp2lU+kt@ zPq7(X1#>CVm|rR74ZgiQTJiISdaX0}nc0kvJwT^3aM5Lp!7s}vn#RE4D$xDy^mU#T zw(T;lgDhh0ML6#BPy`VRz<<~*HDlszGx!GlgBR~|0ABoU_>FE^4M(qIZ=%ces67aI zq`lrXzpxNxv-rJay+u$tAGwjDg9D}zRlgVHTd&2hB7F<)%o5AM$jFA+TV!K@<&hE8 zyu4S1T-Nhu3g`{FN`G$LC$>K~4nRny1U^bCDh!Nu3F30D64)w~7{tze`2wVl9|L1H z&eEb`Pyc|)=gj{ClaW*hfI9M1lWIoAIv3v1&w=$4zM8MA06dM#uf~bd;BQ_J&Gq%P zBMWL@bum%N1_#b|r+9dEFg>8{9C3npMBj=tyL_Y-qNtmJ>rI&dI$7}SLt4!W#C465i~1%wfedQn_*xVrEl8nG&ojuzj?~m4TSD&@hk&?> zo*pqVF|_Fq%~!8FB_wRGZAiud$R@Nr3eCUSGbWSTVU7;!67Xkx^-4tUtA`8dnXt!} z6mqgpIVLC#m(c<01c8^7xVD_j#k=&MSQClzb6IKWeEC{elbch{#fmann=4?hGpCtI zp7f%;7g;L&@`cm+n_zxVof*IpkMvt5vWBhJXB%qvS1%2=#D4YR@#pvsYAKbS zA0fH9A>?&=wxLYzdN3A#dHVAXWE)6*k133qYN#$b`P;BC1f;*nIt%8jSv}s5&%b}$ z(b1W1u1o(^R`>LPgNHbOL*Iml4LN0<5S2skG-bb7fj52d-_E6(m03CcG27U*z=R(W z49h;sk@-tqDp|HI)8K0&l0i0AOIKVhhTCSpxxIh2%{$YAzE>Xiw=>*M2i^VB(XSC- z5{3SdvDE@F#Zqz&W%kfB+5Ii73d%P#WqEDtE13U+Lpjy|0%_gw9e8JQ)sB3d#YWPh z?xJn{)fr^r=5HuFbkBqn<@@O9RJ*$q{kP#N%;nY8g5aLO2REW{NXS_Tiv~&@WF7v6 z+0aP3Bld&@%Jq{na&iGg0#HIiPxAs`?Lp5rIi@@p>?0>Hj6l?Ij;!Fw4!b#7s&{+T z?zlGOBd^a1{Rf;nHa>#W*8c#f9&fc7FwOJJxw>x}T`Kf()zwueSy$TV4-Xa^1O@p* z=Y(*VLT54zl}e8zOmu|eY+&t1K{Fh@4P7y4+^0Ja4y9_4BJwc}n@*Ozu^b;8!_@VTT(u?d$E1{z9GOr~3Gr#lu>zFU zwcaS1>Cw@8G@QmHJ2ZxtUu)Lk$^QUeKg|R1>iSa9@L%Bdg9rexr#L@8zX}^^8Ewb> zmhuQ*+c87ue6vb)8t|TspKM5BK0i*R_u0M;klkSxw_ga2mqC`l)ZlP~s_$3Si>U}|;%y?pOWf%@?Q&A^Jceh%Velr0U zhfA;=iPwo(F4Y0*f5o*Z&mstLCn+0pw?-84cy^*;ma1(SkdPvWCJ%`Y+Pi)P+y;t_ zkOco&SimJMNYvoC;NZj~;T*L?opc^=Y3<=yEzJXf*bcEd;y3Q)GZEp)bTkaM9yal@ zw@d}+NEtY3ta%A7i@ZGUoYI2$$L?A-YjJ8=x-FhoouS5}lNYC!*AC4wF%As}ajjDd zk4ymX(DEGLSW-mka~=v>8dG6+RdLJBZ`-Fo3MEiOxKM3z?@4nAQVDSIq7Lq}-{A4A zg#8Nld>$m@MWr?cNXx*>XRcR4T=kq4UnL^{l6C)`2>tZmh)@(E=cHg1p+~ax|9A-| zg&h6HKUoRFuN;XPSLQzJ09|i0kRn7Z6nkMs{=&h;Ek6{Y`uTo+plUt1og+(~j!%)p zkRcR{R?~1j0<1c%l(5+0R1_icIX%kv0CUhh>Aj}IXJPRsDp4=r1HsT0Ner-vvOJTF za(j(Br>U$`_I^hP4vo!xZ(N_qdEo8s7xj(q=${vhH(h`LP%XU<6JO?Va~uF?QG~)Vp%Gg@<7Cde zLViSn6vkz`m9LGYppd0iZCPDzF3EMXJwgs)`QT91wXCb1TA;W^-g((3Lp>l%s6K z(WzyIV-o-2ulmR2U`c;23W!oi7+^dgP5R@^|0#}4)E2>l>gvO3+)nQ;=-3WW#0{fj zVtg?3Hb7(PcD~m;Fd%C7nqj`ljfzzu{0uNOhNRC#x8bK-y!3Q*;tIVPLIaSA`EdC8 zBw~TIk`fJxF35P?tY2+yG>+o&5)LGht$4Q2BC2C6!>h;xnv09edMrN@rJI;%n#sd8 zJ`iVoTv@+v+(bd)U}vm=gy`n{j-KImJ162ZjyOl9g6Ut83F-K9zh=o~s02bu(8hdMz0SWi)~u&5V41r;2*^X zedDiSBWAEHFh{3WhJht3hMU7>0taxVkWAt8d<^x(biOBR&4D<^}0Ozy0Oujy*XP|4C#2S*Nm}oc}cxvp8ZM+ zYi{N!eq;Zwx!LhxzFw=wI@|WqpRFe�k`eJY}OXBER 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 C%j_=z diff --git a/doc/histogram.png b/doc/histogram.png deleted file mode 100644 index bf53113e66b6987f37b02d7c00878ca3036c3862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16392 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 ZTVdyg0sJ!YH2rpm!N|Z&|Gus(_+NnxDn9@K diff --git a/doc/plot.png b/doc/plot.png deleted file mode 100644 index f2d7970dd8ee6d4413e0f0398cac50a0fd204829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9534 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 JDwZ(t{U3@Ei8ufN