mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
documentation updates
This commit is contained in:
parent
bd30baf42f
commit
ed828ec92b
1 changed files with 9 additions and 34 deletions
|
@ -41,35 +41,29 @@ the _Logging Framework_, for example, and thus you won't see much improvement.
|
||||||
* Those two factors add up to gains very often on the order of only 10-15%,
|
* Those two factors add up to gains very often on the order of only 10-15%,
|
||||||
rather than something a lot more dramatic.
|
rather than something a lot more dramatic.
|
||||||
|
|
||||||
* In addition, there are some
|
|
||||||
[types of scripts that currently can't be compiled](#Scripts-that-cannot-be-compiled),
|
|
||||||
and thus will remain interpreted. If your processing bottlenecks in such
|
|
||||||
scripts, you won't see much in the way of gains.
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
|
|
||||||
|
|
||||||
Here we list various issues with using script optimization, including both
|
Here we list various issues with using script optimization, including both
|
||||||
deficiencies (problems to eventually fix) and incompatibilities (differences
|
deficiencies (things that don't work as well as you might like)
|
||||||
in behavior from the default of script interpretation, not necessarily
|
and incompatibilities (differences in behavior from the default
|
||||||
fixable). For each, the corresponding list is roughly ordered from
|
of script interpretation).
|
||||||
you're-most-likely-to-care-about-it to you're-less-likely-to-care, though
|
|
||||||
of course this varies for different users.
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### Deficiencies to eventually fix:
|
### Deficiencies:
|
||||||
|
|
||||||
* Error messages in compiled scripts have diminished identifying
|
* Run-time error messages in compiled scripts have diminished identifying
|
||||||
information.
|
information.
|
||||||
|
|
||||||
* The optimizer assumes you have ensured initialization of your variables.
|
* The optimizer assumes you have ensured initialization of your variables.
|
||||||
If your script uses a variable that hasn't been set, the compiled code may
|
If your script uses a variable that hasn't been set, the compiled code may
|
||||||
crash or behave aberrantly. You can use the `-u` command-line flag to find such potential usage issues.
|
crash or behave aberrantly. You can use the `-u` command-line flag to find such potential usage issues.
|
||||||
|
|
||||||
* Certain complex "when" expressions may fail to reevaluate when elements
|
* When printing scripts (such as in some error messages), the names of
|
||||||
of the expression are modified by compiled scripts.
|
variables often reflect internal temporaries rather than the original
|
||||||
|
variables.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
@ -77,30 +71,11 @@ of the expression are modified by compiled scripts.
|
||||||
|
|
||||||
* ZAM ignores `assert` statements.
|
* ZAM ignores `assert` statements.
|
||||||
|
|
||||||
* When printing scripts (such as in some error messages), the names of
|
|
||||||
variables often reflect internal temporaries rather than the original
|
|
||||||
variables.
|
|
||||||
|
|
||||||
* The `same_object()` BiF will always deem two non-container values as
|
* The `same_object()` BiF will always deem two non-container values as
|
||||||
different.
|
different.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### Scripts that cannot be compiled:
|
|
||||||
|
|
||||||
The ZAM optimizer does not compile scripts that include "when" statements or
|
|
||||||
lambda expressions. These will take substantial work to support. It also
|
|
||||||
will not inline such scripts, nor will it inline scripts that are either
|
|
||||||
directly or indirectly recursive.
|
|
||||||
|
|
||||||
You can get a list of non-compilable scripts using
|
|
||||||
`-O ZAM -O report-uncompilable`. For recursive scripts, use
|
|
||||||
`-O report-recursive` (no `-O ZAM` required, since it doesn't apply to the
|
|
||||||
alternative optimization, `-O gen-C++`).
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
## Script Optimization Options
|
## Script Optimization Options
|
||||||
|
|
||||||
Users will generally simply use `-O ZAM` to invoke the script optimizer.
|
Users will generally simply use `-O ZAM` to invoke the script optimizer.
|
||||||
|
@ -120,7 +95,7 @@ issues:
|
||||||
|`optimize-AST` | Optimize the (transform) AST; implies `xform`.|
|
|`optimize-AST` | Optimize the (transform) AST; implies `xform`.|
|
||||||
|`profile-ZAM` | Generate to _stdout_ a ZAM execution profile. (Requires configuring with `--enable-debug`.)|
|
|`profile-ZAM` | Generate to _stdout_ a ZAM execution profile. (Requires configuring with `--enable-debug`.)|
|
||||||
|`report-recursive` | Report on recursive functions and exit.|
|
|`report-recursive` | Report on recursive functions and exit.|
|
||||||
|`report-uncompilable` | Report on uncompilable functions and exit.|
|
|`report-uncompilable` | Report on uncompilable functions and exit. For ZAM, all functions should be compilable.|
|
||||||
|`xform` | Transform scripts to "reduced" form.|
|
|`xform` | Transform scripts to "reduced" form.|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue