Correct §5
This commit is contained in:
parent
9e09921c2a
commit
fbb68ba2cf
2 changed files with 15 additions and 15 deletions
|
@ -1,2 +1 @@
|
|||
- Make consistant -ise / -ize (eg. optimize)
|
||||
- Add references to all my repositories
|
||||
|
|
|
@ -1014,14 +1014,15 @@ Table~\ref{table:bench_time}.
|
|||
\caption{Time benchmarking on hackbench}\label{table:bench_time}
|
||||
\end{table}
|
||||
|
||||
The performance of \ehelfs{} is probably overestimated, since \ehelfs{} do not
|
||||
handle all registers from the original DWARF file, and thus the
|
||||
\prog{libunwind} version must perform more computation. However, this overhead,
|
||||
although impossible to measure without first implementing supports for every
|
||||
register, would probably not be that big, since most of the time is spent
|
||||
finding the relevant row. Support for every DWARF instruction, however, would
|
||||
not slow down at all the implementation, since every instruction would simply
|
||||
be compiled to x86\_64 without affecting the already supported code.
|
||||
The performance of \ehelfs{} is probably overestimated for a production-ready
|
||||
version, since \ehelfs{} do not handle all registers from the original DWARF
|
||||
file, and thus the \prog{libunwind} version must perform more computation.
|
||||
However, this overhead, although impossible to measure without first
|
||||
implementing supports for every register, would probably not be that big, since
|
||||
most of the time is spent finding the relevant row. Support for every DWARF
|
||||
instruction, however, would not slow down at all the implementation, since
|
||||
every instruction would simply be compiled to x86\_64 without affecting the
|
||||
already supported code.
|
||||
|
||||
It is also worth noting that on the machine described in
|
||||
Section~\ref{ssec:bench_hw}, the compilation of the \ehelfs{} at a level of
|
||||
|
@ -1176,13 +1177,13 @@ only concerned about the columns CFA, \reg{rip}, \reg{rsp}, \reg{rbp} and
|
|||
second row analyzes all the columns that were encountered, no matter whether
|
||||
supported or not.
|
||||
|
||||
The Table~\ref{table:instr_types} analyzes the proportion of each command
|
||||
(\ie\ the formal way a register is set) for non-CFA columns in the sampled
|
||||
data. For a brief explanation, \texttt{Offset} means stored at offset from CFA,
|
||||
The Table~\ref{table:instr_types} analyzes the proportion of each command (\ie\
|
||||
the formal way a register is set) for non-CFA columns in the sampled data. For
|
||||
a brief explanation, \texttt{Offset} means stored at offset from CFA,
|
||||
\texttt{Register} means the value from a machine register, \texttt{Expression}
|
||||
means stored at the value of an expression, and the \texttt{Val\_} prefix means
|
||||
that the value must not be dereferenced. Overall, it can be seen that
|
||||
supporting \texttt{Offset} already means supporting the vast majority of
|
||||
means stored at the address of an expression's result, and the \texttt{Val\_}
|
||||
prefix means that the value must not be dereferenced. Overall, it can be seen
|
||||
that supporting \texttt{Offset} already means supporting the vast majority of
|
||||
registers. The data gathered (not reproduced here) also suggests that
|
||||
supporting a few common expressions is enough to support most of them.
|
||||
|
||||
|
|
Loading…
Reference in a new issue