Comments (9)
This is semi-doable. As-is AWSY's format lacks 3 fields that every report entry has in about:memory:
- kind - this is problematic, it can be either NONHEAP, HEAP, or OTHER and is used by about:memory to figure out how to handle the data
- description - this probably doesn't matter, we can just empty string it or maybe omit it
- process - just dummy this out to "Main Process" (or maybe omit)
How do you see this actually working? Something like the :
- click data point
- choose a cset, click "view"
- choose iteration
- choose checkpoint
- click "export"
from areweslimyet.
kind - this is problematic, it can be either NONHEAP, HEAP, or OTHER and is used by about:memory to figure out how to handle the data
We should probably be storing this :( It was added later and just not picked up.
Descriptions are less important, but might be convenient. Storing them in the DB probably isn't too hard since they change rarely, so just having a description lookup table similar to datapoints could work.
Units is another thing that was hacked on later, right now reporters are stored as "Foo/bar" for the bytes unit, but for things like percent we just prepend: "pct:foo/bar/..."
As for how this would work, yeah that sounds good. Maybe also stick a [export] next to [view] or something. We should grab a gzip-in-js library and just spin up a worker to reformat all the json and gzip it, then offer it up for download.
I also considered experimenting with how space-efficient just switching to storing all data as native .json.gz reports would be, but I don't see how it would be feasible.
from areweslimyet.
It looks like we can hack around not having kind
, if units != bytes
then we can assume kind
is other, if units == bytes
then we can just flag it as heap. On the about:memory side we'll need to update the logic to handle if heap-unclassified
is already present (that's the only usage of kind
that cares whether it's heap or non-heap, and we already calculate it).
If we export from the [view] level we'll be exporting 30 memory reports, I'm not sure that's the usage we want. Also I haven't found a client side js-tar-gz library, so I don't think it's even really feasible at this point.
from areweslimyet.
The about:memory files are just json.gz, no tar needed, so I think just grabbing something like:
https://github.com/beatgammit/gzip-js Would work. It's probably also not too difficult to just emscripten gzip if no suitable libs exist!
Adding kind to the memory reports table and tweaking the testers to record it should be trivial, and we can use the heuristic you describe to work around it for old tests.
from areweslimyet.
| The about:memory files are just json.gz, no tar needed
Sorry for the confusion, the tar part was if we wanted to export all 30 memory reports. gzip itself is definitely doable.
from areweslimyet.
Oh, gotcha -- for the [export] Thing I meant putting [export] next to every [view] link, so you options are to view a changeset or export it -- not export all 30 or whatnot.
from areweslimyet.
That's the problem, each changeset has 30 memory reports associated with it (5 iterations, 6 checkpoints).
from areweslimyet.
Ohhh, right. Gotcha. Yeah, scratch that, in that case
from areweslimyet.
Resolved by pr #38
from areweslimyet.
Related Issues (20)
- Using non-existent proxy no longer works, breaks AWSY HOT 2
- Handle ftp.mozilla.org migration
- Update to new mozdownload API
- Properly normalize process names HOT 1
- Try builds are no longer working HOT 1
- FTP builds are no longer working
- Support posting perf data to both prod and stage HOT 1
- Attach logs to perfherder data HOT 1
- Track source repo HOT 1
- Support processing minidumps HOT 1
- Fix about:memory exporter HOT 2
- Add a test that opens and closes browser windows (as opposed to tabs) HOT 1
- Make AWSY scroll during testing, or at least add some tests that scroll HOT 1
- Just display the past year's results by default HOT 3
- Handle rename of the marionette-client package to marionette-harness
- archive.m.o stopped updating, no tests run since 1/18/2017
- Use pyup.io to keep Python dependencies up to date
- Update treeherder-client from 3.0.0 to 4.0.0
- Auto-populate the first value(s) for a custom series
- How come ? HOT 1
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 areweslimyet.