Skip to content

Commit beb5c19

Browse files
committed
change(/wiki/introduction): profile. profile. profile.
1 parent a10a0ef commit beb5c19

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

content/wiki/introduction/language.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ there are some requirements for getting the best performance...
5959
First things first: You *need* to be able to define and use flat data containers/aggregates/compounds,
6060
commonly called structs, and the ability to tightly pack them in memory (e.g.: as arrays).
6161

62-
Without them, you'll have to manually read/write data from raw buffers of bytes,
62+
Without them, you'll have to manually read/write data from raw buffers of bytes/ints,
6363
which is both a colossal pain in the behind and a *massive* source of bugs.
6464

6565
{% info_notice(summary="**Memcopy is (not) your friend.**") %}
@@ -112,9 +112,27 @@ We (humans) are inherently incapable of mentally dealing with multiple concurren
112112
we quite literally cannot comprehend this stuff without heaps of training and tools to assist us.
113113
Anybody that says otherwise is either a liar or a robot.
114114

115-
So, take all the help you can, use existing threading and synchronization primitives,
115+
So, take all the help you can (debuggers and tracers!),
116+
use existing threading and synchronization primitives,
116117
and remember that queues are your most reasonable friend.
117118

119+
## Profile. Profile. Profile.
120+
121+
Using profilers is a ***must*** to get accurate pictures of your performance woes.
122+
123+
While trusting your (hopefully sharply honed :wink:) programming wisdom is a good-ish thing,
124+
it can only get you so far before *actively hindering you*...
125+
so acquiring more knowledge via profiling is your best bet.
126+
127+
Thankfully, most common <abbr title="Integrated Development Environments">IDEs</abbr>
128+
(such as Microsoft's Visual Studio, various JetBrains products, the Eclipse family, etc.)
129+
have profilers, or integrations with them, built right into them, making profiling your software relatively straight forward...
130+
131+
Of course, learning how to use and interpret the data a profiler outputs is a whole 'nother topic,
132+
on which entire books have been written, so we won't get into that here.
133+
134+
Again, remember: **Profile. Profile. Profile.**
135+
118136
## Your Choice
119137

120138
In the end, it is your choice to pick a language that best fits your future goals,

0 commit comments

Comments
 (0)