Skip to content

Releases: osyoyu/pf2

v0.7.0

02 Jan 16:21
Compare
Choose a tag to compare

Changed

  • Prepended frozen_string_literal: true to all Ruby files.
  • Internals
    • Updated rb-sys to 0.9.105.
    • Synced libbacktrace with upstream as of 2024-08-06.
  • Experimental
    • The new serialization format (Ser2) can be emitted via use_experimental_serializer: true. Development is still in its very early stage, and the old format will be the default in this release.

v0.6.0

02 Jan 12:27
Compare
Choose a tag to compare

Changed

  • The default sampling interval is now 9 ms (was originally 49 ms).
    • It is intentional that the default is not 10 (or 50) ms - this is to avoid lockstep sampling.
  • BREAKING: Pf2::Reporter has been moved to Pf2::Reporter::FirefoxProfiler.
    • This is to make space for other planned reporters.

v0.5.2

12 Jul 18:38
Compare
Choose a tag to compare

Fixed

  • Properly default to TimerThread scheduler on non-Linux environments.

v0.5.1

24 Mar 16:20
Compare
Choose a tag to compare

Fixed

  • Fixed compilation on non-Linux environments.

v0.5.0

24 Mar 16:20
Compare
Choose a tag to compare

Added

  • pf2 serve subcommand
    • pf2 serve -- ruby target.rb
    • Profile programs without any change
  • New option: threads: :all
    • When specified, Pf2 will track all active threads.
    • threads: nil / omitting the threads option has the same effect.
  • Introduce Pf2::Session (#16)
    • Session will be responsible for managing Profiles and Schedulers

Removed

  • Pf2::SignalScheduler and Pf2::TimerThreadScheduler are now hidden from Ruby.
  • track_all_threads option is removed in favor of threads: :all.

v0.4.0

22 Mar 16:47
Compare
Choose a tag to compare

Added

  • New option: track_all_threads
    • When true, all Threads will be tracked regardless of the threads option.

Removed

  • The track_new_threads option was removed in favor of the track_all_threads option.

v0.3.0

05 Feb 18:22
Compare
Choose a tag to compare

Added

  • Native stack consolidation
    • Pf2 now records native (C-level) stacks during sample capture.
  • New configuration interface for Pf2.start, Pf2::SignalScheduler.start, Pf2::TimerThreadScheduler.start
    • They now accept keyword arguments (interval_ms, threads, time_mode, track_new_threads).
  • New configuration options
    • interval_ms: The sampling interval.
    • time_mode (:wall or :cpu): The sampling timer's mode. :wall is wall-clock time (CLOCK_MONOTONIC to be specific), :cpu is per-thread CPU time (CLOCK_THREAD_CPUTIME_ID).

Removed

  • Configuration through positional arguments is no longer supported.

v0.2.0

05 Feb 18:21
Compare
Choose a tag to compare
  • New Ruby interface: Pf2.start, Pf2.stop, Pf2.profile
  • Introduce the concepts of Schedulers
    • Implement SignalScheduler and TimerThreadScheduler
  • Rewritten many components

v0.1.0

04 Oct 05:21
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release
  • Initial release