Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need a basic profiler #108

Closed
ViralBShah opened this issue Jul 12, 2011 · 7 comments
Closed

Need a basic profiler #108

ViralBShah opened this issue Jul 12, 2011 · 7 comments
Labels
performance Must go faster

Comments

@ViralBShah
Copy link
Member

Julia performance is often quite opaque, and it is hard to tell where time is being spent. I think it is time we need a basic profiler. Marking this as 2.0, unless there is something minimal and possible in the 1.0 timeframe.

@grandinj
Copy link

I note that LLVM has an llvm-prof command, which might be useful as a starting point.

@StefanKarpinski
Copy link
Member

I'm not sure about llvm-prof, but the LLVM tools tend to be designed for compiled code and since we JIT instead, they're usually not that helpful. Will check it out though.

@shabbychef
Copy link
Contributor

the matlab profiler is the only thing that keeps me from using octave instead (well, my company buys the license, too). a good profiler is, IMO, essential for scientific computing.

@ViralBShah
Copy link
Member Author

Hopefully this can become a Google Summer of Code project, if we are accepted into the program this year.

@StefanKarpinski
Copy link
Member

Matlab's profiler is really, really awesome. One of the best I've encountered — largely because it's so incredibly easy to use. We really do need something in this arena, but I'm not sure what the best approach is. Can we just instrument the entry and exit from every function call and then build a profile from that? Or will that measurement itself affect performance too much?

@grandinj
Copy link

Profilers exist on a spectrum.
Profilers that insert instrumentation code are good at providing very fine-grained profiling, but at the cost of speed.
Sampling profilers simply take periodic copies of the stack, which is low-overhead, but requires more time to build up a good profile.

I would suggest building on top of one of the existing open-source tools:

http://code.google.com/p/gperftools/
http://code.google.com/p/shinyprofiler/
http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html

@ViralBShah
Copy link
Member Author

Closing this one since we already have the basic profiler by @timholy

StefanKarpinski pushed a commit that referenced this issue Feb 8, 2018
cmcaine pushed a commit to cmcaine/julia that referenced this issue Sep 24, 2020
…mainerror

Nucleotide Count: expect DomainError instead of ErrorException
Keno pushed a commit that referenced this issue Oct 9, 2023
Run all Base users of `sigatomic` in compiled mode. Fixes #106
udesou pushed a commit to udesou/julia that referenced this issue Nov 22, 2023
…JuliaLang#49702) (JuliaLang#108)

Per @vtjnash's comment here:
https://github.com/JuliaLang/julia/pull/49508/files/bca5ac79d04fb2a95f3b9a7b7448fe5b478f950b#r1186161259

> the handling of this error is quite bad and sometimes ends up breaking
> the process (as I found out today trying to debug something completely
> unrelated)

This is a Tests-only PR
inkydragon pushed a commit that referenced this issue Dec 15, 2024
Stdlib: SHA
URL: https://github.com/JuliaCrypto/SHA.jl.git
Stdlib branch: master
Julia branch: master
Old commit: aaf2df6
New commit: 8fa221d
Julia version: 1.12.0-DEV
SHA version: 0.7.0(Does not match)
Bump invoked by: @inkydragon
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaCrypto/SHA.jl@aaf2df6...8fa221d

```
$ git log --oneline aaf2df6..8fa221d
8fa221d ci: update doctest config (#120)
346b359 ci: Update ci config (#115)
aba9014 Fix type mismatch for `shake/digest!` and setup x86 ci (#117)
0b76d04 Merge pull request #114 from JuliaCrypto/dependabot/github_actions/codecov/codecov-action-5
5094d9d Update .github/workflows/CI.yml
45596b1 Bump codecov/codecov-action from 4 to 5
230ab51 test: remove outdate tests (#113)
7f25aa8 rm: Duplicated const alias (#111)
aa72f73 [SHA3] Fix padding special-case (#108)
3a01401 Delete Manifest.toml (#109)
da351bb Remvoe all getproperty funcs (#99)
4eee84f Bump codecov/codecov-action from 3 to 4 (#104)
15f7dbc Bump codecov/codecov-action from 1 to 3 (#102)
860e6b9 Bump actions/checkout from 2 to 4 (#103)
8e5f0ea Add dependabot to auto update github actions (#100)
4ab324c Merge pull request #98 from fork4jl/sha512-t
a658829 SHA-512: add ref to NIST standard
11a4c73 Apply suggestions from code review
969f867 Merge pull request #97 from fingolfin/mh/Vector
b1401fb SHA-512: add NIST test
4d7091b SHA-512: add to docs
09fef9a SHA-512: test SHA-512/224, SHA-512/256
7201b74 SHA-512: impl SHA-512/224, SHA-512/256
4ab85ad Array -> Vector
8ef91b6 fixed bug in padding for shake, addes testcases for full code coverage (#95)
88e1c83 Remove non-existent property (#75)
068f85d shake128,shake256: fixed typo in export declarations (#93)
176baaa SHA3 xof shake128 and shake256  (#92)
e1af7dd Hardcode doc edit backlink
```

Co-authored-by: Dilum Aluthge <[email protected]>
DilumAluthge added a commit that referenced this issue Dec 17, 2024
Stdlib: Distributed
URL: https://github.com/JuliaLang/Distributed.jl
Stdlib branch: master
Julia branch: master
Old commit: 6c7cdb5
New commit: c613685
Julia version: 1.12.0-DEV
Distributed version: 1.11.0(Does not match)
Bump invoked by: @DilumAluthge
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaLang/Distributed.jl@6c7cdb5...c613685

```
$ git log --oneline 6c7cdb5..c613685
c613685 Merge pull request #116 from JuliaLang/ci-caching
20e2ce7 Use julia-actions/cache in CI
9c5d73a Merge pull request #112 from JuliaLang/dependabot/github_actions/codecov/codecov-action-5
ed12496 Merge pull request #107 from JamesWrigley/remotechannel-empty
010828a Update .github/workflows/ci.yml
11451a8 Bump codecov/codecov-action from 4 to 5
8b5983b Merge branch 'master' into remotechannel-empty
729ba6a Fix docstring of `@everywhere` (#110)
af89e6c Adding better docs to exeflags kwarg (#108)
8537424 Implement Base.isempty(::RemoteChannel)
6a0383b Add a wait(::[Abstract]WorkerPool) (#106)
1cd2677 Bump codecov/codecov-action from 1 to 4 (#96)
cde4078 Bump actions/cache from 1 to 4 (#98)
6c8245a Bump julia-actions/setup-julia from 1 to 2 (#97)
1ffaac8 Bump actions/checkout from 2 to 4 (#99)
8e3f849 Fix RemoteChannel iterator interface (#100)
f4aaf1b Fix markdown errors in README.md (#95)
2017da9 Merge pull request #103 from JuliaLang/sf/sigquit_instead
07389dd Use `SIGQUIT` instead of `SIGTERM`
```

Co-authored-by: Dilum Aluthge <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Must go faster
Projects
None yet
Development

No branches or pull requests

4 participants