• Re: ANN: Dogelog Player 1.1.4 (Generational GC)

    From Mild Shock@3:633/280.2 to All on Mon Jan 8 22:13:11 2024

    Dogelog Player is our recent Prolog system
    pet project. Concerning its Java version it has
    roots going back into the 1990’s. We provide a
    little reflection on some of the milestones
    in the past and the current state of the dynamic
    database compared to other Prolog systems.

    Starting with the synchronized Java Hashtable,
    we went to lockless Hashtable, to scrambled
    Hashtable and now to hybrid Hashtable. Benchmarking
    assertz/1 and retractall/1 on Fibonacci
    memoization shows that upcoming Dogelog Player
    for Java plays midfield.

    See also:

    30 Years of Prolog Dynamic Database https://twitter.com/dogelogch/status/1744305938004140342

    30 Years of Prolog Dynamic Database
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    Dogelog Player is a Prolog system for the
    JavaScript, Python and Java target platform.
    Inside the browser the library(markup) offers
    XSS injection safe markup generation. We extended
    the library(markup) towards a heap friendly XML
    streaming on all target platforms.

    Conceptually we were inspired by Java’s class
    FilterWriter. Text payload is automatically XML
    escaped and tags are written in that the underlying
    writer is directly called. As a test case we wrote
    a colorizer in 100% Prolog, so that we can phase
    out our old Java code.

    See also:

    XML Streaming for Dogelog Player https://twitter.com/dogelogch/status/1736864678616207768

    XML Streaming for Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:
    Dear All,

    We are happy to announce a new
    edition of the Dogelog player:

    - Multi Measurement:
    ÿÿ The library(runner) was enhanced to be
    able to perform multiple measurements when
    used as a benchmark harness. This feature
    can for example be used to measure execution
    time and garbage collection time, provided
    the Prolog system offers such a statistics/2 key.

    - JDK 21 Bytecode:
    ÿÿ Like we were phasing out formerly Jekejeke
    Prolog we are currently also phasing out
    JDK 8 Bytecode. There is a grace period
    but the transition to JDK 21 Bytecode is
    already seen in the new artefacts index9.zip
    and dogelog9.zip for the Dogelog Player
    on the Java platform.

    - Generational GC:
    ÿÿ The garbage collector of Dogelog Player
    was enhanced to have a more refined triggering
    and to also use a faster generational variant
    when appropriate. This was implemented for
    all target platforms and we see performance
    gains Java 42%, JavaScript 51% and Python 61%.

    Have Fun!
    Jan Burse, 30.11.2023, http://www.xlog.ch/



    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Mild Shock@3:633/280.2 to All on Sat Jan 20 10:59:39 2024

    Dogelog Player is a 100% Prolog written Prolog
    interpreter. We started seeding the implementation
    of a common HTTP Server library for all targets
    JavaScript, Python and Java. Lets take a snapshot of
    the current API and report some performance experience.

    We could complete a minimal library(spin) and
    demonstrate the correct UTF-8 HTTP streaming of a
    text stream. We then measured the local delivery of
    a hobbit.txt file of 50'000 bytes, we also run
    against SWI-Prolog. We were positively surprised by
    the performance of JavaScript, Java and SWI-Prolog.
    Only the Python performance was a little disappointing.

    See also:

    Streaming HTTP for Dogelog Player https://twitter.com/dogelogch/status/1748477496364818517

    Streaming HTTP for Dogelog Player
    https://www.facebook.com/groups/dogelog

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Mild Shock@3:633/280.2 to All on Sat Jan 20 21:03:05 2024

    Our initial testing with CPython was consistently
    very disappointing, so that we switched to PyPy,
    the alternative JIT-ing implementation of Python.
    With running Doglog Player via PyPy it becomes
    comparable in performance to the JavaScript target,
    both targets now only lack by ca 50% behind the
    Java target and SWI-Prolog.

    See also:

    Streaming HTTP for Dogelog Player [corrected] https://twitter.com/dogelogch/status/1748646455999332354

    Streaming HTTP for Dogelog Player [corrected] https://www.facebook.com/groups/dogelog

    ild Shock schrieb:

    Dogelog Player is a 100% Prolog written Prolog
    interpreter. We started seeding the implementation
    of a common HTTP Server library for all targets
    JavaScript, Python and Java. Lets take a snapshot of
    the current API and report some performance experience.

    We could complete a minimal library(spin) and
    demonstrate the correct UTF-8 HTTP streaming of a
    text stream. We then measured the local delivery of
    a hobbit.txt file of 50'000 bytes, we also run
    against SWI-Prolog. We were positively surprised by
    the performance of JavaScript, Java and SWI-Prolog.
    Only the Python performance was a little disappointing.

    See also:

    Streaming HTTP for Dogelog Player https://twitter.com/dogelogch/status/1748477496364818517

    Streaming HTTP for Dogelog Player
    https://www.facebook.com/groups/dogelog


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)