docs.md: add profiling section
parent
3608c81cb9
commit
66f4c881ec
34
doc/docs.md
34
doc/docs.md
|
@ -1227,13 +1227,14 @@ v fmt file.v
|
|||
```
|
||||
|
||||
It's recommended to set up your editor, so that vfmt runs on every save.
|
||||
A vfmt run is usually pretty cheap (takes <30ms).
|
||||
|
||||
Always run vfmt before pushing your code.
|
||||
Always run `v fmt file.v` before pushing your code.
|
||||
|
||||
## writing_documentation
|
||||
## Writing Documentation
|
||||
|
||||
The way it works is very similar to Go. It's very simple: there's no need to
|
||||
write documentation for your code, vdoc will generate it from the source code.
|
||||
write separate documentation for your code, vdoc will generate it from the source code.
|
||||
|
||||
Documentation for each function/type/const must be placed right before the declaration:
|
||||
|
||||
|
@ -1248,8 +1249,31 @@ The comment must start with the name of the definition.
|
|||
|
||||
An overview of the module must be placed in the first comment right after the module's name.
|
||||
|
||||
To generate documentation, run `v doc path/to/module` (TODO this is
|
||||
temporarily disabled).
|
||||
To generate documentation, run `v doc path/to/module` (TODO this is temporarily disabled).
|
||||
|
||||
## Profiling
|
||||
|
||||
V has good support for profiling your programs: `v -profile profile.txt run file.v`
|
||||
That will produce a profile.txt file, which you can then analyze.
|
||||
|
||||
The generated profile.txt file will have lines with 4 columns:
|
||||
a) how many times a function was called
|
||||
b) how much time in total a function took (in ms)
|
||||
c) how much time on average, a call to a function took (in ns)
|
||||
d) the name of the v function
|
||||
|
||||
You can sort on column 3 (average time per function) using:
|
||||
`sort -n -k3 profile.txt|tail`
|
||||
|
||||
You can also use stop watches to measure just portions of your code explicitly:
|
||||
```v
|
||||
import time
|
||||
fn main(){
|
||||
sw := time.new_stopwatch()
|
||||
println('Hello world')
|
||||
println('Greeting the world took: ${sw.elapsed().nanoseconds()}ns')
|
||||
}
|
||||
```
|
||||
|
||||
# Advanced Topics
|
||||
|
||||
|
|
Loading…
Reference in New Issue