Skip to content

reallyTG/p5-promise-viz

Repository files navigation

p5-promise-viz

P5 for promise visualization.

Instructions

  1. clone repository git clone https://github.com/reallyTG/p5-promise-viz.git
  2. Start local http server
    • Note: We have to use a server because we are loading file data from JavaScript
    • Using PHP
      • e.g. php -s localhost:1024) from the directory where index.html resides
    • Using Python3
      • e.g. python3 -m http.server 1024 from the directory where index.html resides
    • Using Python2
      • e.g. python -m SimpleHTTPServer 1024 from the directory where index.html resides
  3. Start webbrowser at local http address (e.g. localhost:1024 in the browser bar)
  4. Note: Sometimes visualization gets cached, try opening incognito if the visualization has not changed.

Links related to this project

  1. Overleaf paper with edit access
    • This is where everything eventually needs to go
  2. https://docs.google.com/spreadsheets/d/1OmBX5fRUwys8eQI7Ome6Y1vFS5uo6ofk7p17HBVIIbU/edit#gid=0
    • This is slightly older when Mark was active on the project.
  3. AsyncAwaitBenchmarks Github Repo
    • Old repository where we were going to write paper.
  4. ProfilingPromisesExamples
    • Repository with small examples
  5. manifest
    • Benchmarks in this project
  6. Promise processing
    • Repo for processing results.
  7. Promise Analysis
    • Repo for analysis
  8. Profiling Promises Benchmarks
    • Profiling Promises Benchmarks

E-mails of importance (By Subject)

  1. Promise-Resolve-Then Pattern Example (from Alexi)
  2. explicit promisification anti-pattern (from Frank)
  3. additional anti-pattern to look for in the promise profiling project (from Frank)
  4. found the issue in CodeceptJS! (from Frank)
  5. Profilin': Update on CodeceptJS (From Alexi)
  6. Profilin' Brief Update (From Alexi)
    • Await-in-a-loop pattern
  7. what "await 7" is translated into (from Frank)
  8. another pattern: awaiting a value (from Frank)
  9. explaining the "airplane tail" diagram (from Frank)
  10. Profiling Promises Results from today's meeting (from Mark)
  11. references - blog posts, etc. relevant for profiling project (from Frank)

Patterns and Benchmarks

  1. Sequential
    • Description: Completely Sequential (no asynchronicity at all)
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...
  2. testrunner
    • Description: One long running promise with many smaller promises.
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...
  3. airplane
    • Description:
    • See E-mail: explaining the "airplane tail" diagram
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...
  4. Await-in-a-loop pattern
    • Description:
    • See E-mail: Profilin' Brief Update (From Alexi)
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...
  5. Awaiting a value
    • Description:
    • See E-mail: another pattern: awaiting a value (from Frank)
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...
  6. Barrier Pattern
    • Description:
    • See E-mail: Profiling Promises Results from today's meeting (from Mark)
    • Project(s) Showing pattern:
      • Project 1 ...
      • Project 2 ...

Useful Related work

  1. Don’t Call Us, We’ll Call You: Characterizing Callbacks in JavaScript
    • Code repositories for paper: https://github.com/saltlab/CallMeBack
    • "stats" directory has some projects listed that should be useful.
    • The paper highlights a few metrics we may want to eventually capture as well ('how nested async calls are', '% of functions that are async')
  2. A study and toolkit for asynchronous programming in C#
    • See e-mail from Alexi: Fwd: link to the C# paper
  3. Analyzing Async Calls
  4. Timelane 2

Dump of related work from Frank

blog posts, etc. related to profiling/visualizing the execution of concurrent code:

blog posts, etc. related to profiling async code:

About

P5 for promise visualization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published