Git Product home page Git Product logo

illimani-memory-profiler's Introduction

I'm Sebastian Jordan Montaño

  • 👋 Hi, I’m Sebastian Jordan Montaño. I'm an open-source software developer. I work mainly on object-oriented programming and language design.
  • 🔭 I’m currently doing a PhD on memory profiling.
  • 💻 Want to know more or reach me? Check out my website jordanmontt.fr

jordanmontt

Sebastian Jordan Montaño

illimani-memory-profiler's People

Contributors

akevalion avatar guillep avatar jordanmontt avatar pdebruic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

illimani-memory-profiler's Issues

Loading error in P11 (v0.8)

Hello,

I read in main branch "The release version v0.8 works on Pharo 11 and Pharo 10. To use it on Pharo 12, please use the version that is on the main branch." and I wanted to load it in P11.

So, I changed to the tag (https://github.com/jordanmontt/illimani-memory-profiler/tree/v0.8) and modified the snippet to load that version:

EpMonitor disableDuring: [
	Metacello new
		baseline: 'IllimaniAllocationProfiler';
		repository: 'github://jordanmontt/illimani-memory-profiler:v0.8';
		load ].

I got:

Warning: Package *MethodProxies depends on the following classes:
  InstrumentationEnsurer
You must resolve these dependencies before you will be able to load these definitions: 
  MpInstrumentationUnwinder
  MpInstrumentationUnwinder>>#newWithHandler:receiver:arguments:
  MpInstrumentationUnwinder>>#arguments
  MpInstrumentationUnwinder>>#arguments:
  MpInstrumentationUnwinder>>#handler
  MpInstrumentationUnwinder>>#handler:
  MpInstrumentationUnwinder>>#receiver
  MpInstrumentationUnwinder>>#receiver:
  MpInstrumentationUnwinder>>#value

Add human readable size text

image

Please in total size in byte column use humanReadableSIByteSize or a similar method to express to users more meaningful information.

DNU: Instance of WriteStream did not understand #inspectionFullString

Hi,
Clicking on the GUI, I got:

Screenshot 2023-09-28 at 14 42 30

And DNU seems to be fixed when I inserted the send "contents" like this:

inspectorExtensionContextFingerprint: aBuilder
	<inspectorPresentationOrder: 2 title: 'Context Fingerprint'>

	^ contextFingerprint contents inspectionFullString

Please tell me if my bug description is not precise enough.

Context fingerprint

The context fingerprint was removed because it was causing the profiler to break in the latest Pharo 12. One new implementation is needed

Created separeted classes for the presenters in the Inspector

Currently, for example for the statistics nodes, there are inspector extensions (presenters). Those presenters are created in methods. I need to put them into separated classes like that I can override the transmission port and have custom transmissions in the inspector.

Pharo 12 image unresponsive

Hello. I loaded the project with:

EpMonitor disableDuring: [
	Metacello new
		baseline: 'IllimaniProfiler';
		repository: 'github://jordanmontt/illimani-memory-profiler:main';
		load ].

This is a snippet that reproduces it:

IllAllocationProfiler new
	profileFor: 1 seconds;
	open;
	yourself

But also copy-pasted scripts from readme, and a script that I used in the past for Bloc.

My Pharo has 1 or 2 weeks:

Pharo 12.0.0
Build information: Pharo-12.0.0+build.1058.sha.d7fe9c39709fd9c1855730743d80c4c7d49a116d (64 Bit)

Is this information enough?

Add a spinner when taking time to load

When there is a lot of data, to open the UI takes a lot of time. Especially the heat-map. It is needed to add a spinner to show to the user that the tool is calculating something.

After it is worth optimizing the speed up things

Use ephemerons

In the new vm the ephemerons are implemented. I need to use them in the profiler to know when an Object is being garbage collected. It can be also used to calculate the hash of the objects. Because we can assume that at that time the object that configurated enough to extract the hash from it. Because when I tried to extract the hash at the allocation time sometimes I was getting erros because the object was failing when calculating the hash

Improve sampling

Currently, the sampling only accepts numbers between 1 and 100 (1% to 100%). The mechanism needs to be improved to accept smaller rates. Maybe a user wants to sample 1 of every 1000 objects (0.1%)

Doesn't load in Pharo 12

EpMonitor disableDuring: [
	Metacello new
		baseline: 'IllimaniProfiler';
		repository: 'github://jordanmontt/illimani-memory-profiler:main';
		load ].

Result :(

Warning: The following definitions had errors while loading.  Press Proceed to try to load them again (they may work on a second pass):
  IllFinalizationProfilerUI
  IllFrequencyHistogramPresenter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.