----------------------------------------------------------------------------------
@MSGID:
<01a5138b-b619-4cf0-9d92-6984695a8b13n@googlegroups.com> fef910dd
@REPLY:
<11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com> 7c2763f9
@REPLYADDR Mild Shock <bursejan@gmail.com>
@REPLYTO 2:5075/128 Mild Shock
@CHRS: CP866 2
@RFC: 1 0
@RFC-References:
<f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com> <977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com>
<142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com> <4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com>
<3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com> <e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com>
<030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com> <db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com>
<868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com> <m2r0njgghs.fsf@logic.at>
<37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com> <6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
<bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com> <m2msy1n81k.fsf@logic.at>
<11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>
@RFC-Message-ID:
<01a5138b-b619-4cf0-9d92-6984695a8b13n@googlegroups.com>
@TZUTC: -0700
@PID: G2/1.0
@TID: FIDOGATE-5.12-ge4e8b94
Actually the test was done with JDK 21 as the Java Virtual
Machine. The older JDK 8 fares a little bit more favorable:
/* JDK 8 */
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 39146 ms, GC 254 ms, Wall 04/09/2023 21:49
true.
/* JDK 21 */
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
true.
The formerly Jekejeke Prolog Minlog Extension, that has the
CLP(FD), isn`t public anymore, because I am phasing it out.
Mild Shock schrieb am Montag, 4. September 2023 um 21:46:18 UTC+2:
> I am also slower than SWI-Prolog with formerly Jekejeke Prolog,
> but sandwhich between Scryer Prolog and SWI-Prolog for this example.
> I never know whether my CLP(FD) still works, so first some sanity checks:
>
> ?- nth_member(X, [5,4,6], 4).
> X = 2;
> fail.
> ?- nth_member(2, [5,4,6], X).
> X = 4;
> fail.
>
> Then the benchmark results:
> ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> % Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
> true.
>
> But I don`t know whether its comparable with Scryer Prolog since
> I didn`t test Scryer Prolog, and the Scryer Prolog figures are from
> Markus Triskas machine.
>
> I am currently phasing out formerly Jekejeke Prolog. It should receive
> the same core as Dogelog Player. And then maybe can also re-add
> CLP(FD) and see what happens. But this might take months. Especially
>
> since I want to reinvent CLP(FD), adding some CRA Strategy, and I
> don`t know yet eactly how to do it. I could optimized the non-labeling
> behaviour exactly towards this test case, where GNU Prolog performs well.
> Markus Triska schrieb am Montag, 4. September 2023 um 19:42:01 UTC+2:
> > Mild Shock <
burs...@gmail.com> writes:
> >
> > > Whats the Scryer Performance of this Example?
> > >
> > > /* GNU Prolog 1.5.0 */
> > > ?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
> > > (94 ms) yes
> > >
> > > /* SWI-Prolog 9.1.14 */
> > > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> > > % 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100%
CPU, 19830457 Lips)
> > > true.
> > With Scryer Prolog 0.9.2 on my machine, I get:
> >
> > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), false; true)).
> > % CPU time: 84.182s
> > true.
> >
> > On my machine, that`s ca. 15 times slower than SWI 8.3.15, which is the
> > last SWI version I found installed on this machine. Newer versions may
> > well be faster! For best performance, I recommend to build Scryer Prolog
> > with the optional --release flag, i.e.:
> >
> > $ cargo build --release
> > All the best,
> > Markus
> >
> > --
> > comp.lang.prolog FAQ:
http://www.logic.at/prolog/faq/
> > The Power of Prolog:
https://www.metalevel.at/prolog
--- G2/1.0
* Origin: usenet.network (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441