Comments (2)
Did a bit of digging to see if I could find a cause, ProfilingImpl contains this bit of code:
val treeSize = 0 // macroInfo.expandedNodes + guessTreeSize(expanded)
// Use 0L for the timer because it will be filled in by the caller `apply`
macroInfos.put(callSitePos, MacroInfo(expandedMacros, treeSize, 0L))
expanded
... But the timer never actually gets filled.
pluginsMacroExpand used to contain a function that updated the timers, but it got removed in 6000f5e:
def updateExpansionTime(desugared: Tree, start: statistics.TimerSnapshot): Unit = {
statistics.stopTimer(preciseMacroTimer, start)
val (nanos0, _) = start
val timeNanos = (preciseMacroTimer.nanos - nanos0)
val callSitePos = desugared.pos
// Those that are not present failed to expand
macroInfos.get(callSitePos).foreach { found =>
val updatedInfo = found.copy(expansionNanos = timeNanos)
macroInfos(callSitePos) = updatedInfo
}
}
from scalac-profiling.
As I wrote in #133, expansionNanos
s should become more plausible, but the issue with the blank expandedNodes
s is still present. That's why I think the current issue should be open. Disregarding the matter of whether expandedNodes
is required to have in general.
from scalac-profiling.
Related Issues (20)
- RFC: Introduce the `export-profiles` plugin option
- Plugin doesn't work even though -Vstatistics is set HOT 2
- Color flag seems incorrect in the Usage instructions HOT 2
- scalac-profiling quietly failing and providing no output in some cases HOT 8
- Adopt the `sbt-github-actions` SBT plugin
- Update FlameGraph HOT 2
- Scala 3 support? HOT 1
- Generate flamegraph for the entire project merging multiple modules
- Display file name of offending implicits in flamegraph HOT 1
- Flamegraphs are empty without the `-Ystatistics` option HOT 2
- Add link to documentation page in README and repo metadata
- Misleading logs regarding the `profiledb` on the first SBT startup HOT 2
- Move documentation to a more permanent home HOT 4
- Add additional maintainers HOT 1
- Enhance `scalac-profiling` for usage by any build tool
- Migrate microsite to Docusaurus
- Depends on the Flamegraph git project based in the Center organization HOT 10
- Enable searching on the website via Algolia HOT 1
- Embedded SVGs on the website are not clickable HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scalac-profiling.