Показать сообщение отдельно
  (#36 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 575
Сказал(а) спасибо: 17
Поблагодарили 35 раз(а) в 35 сообщениях
Регистрация: 28.03.2012
По умолчанию 25.12.2017, 15:41

спасибо за заботу.
вот так я тестировал и получал тайминги (может поможет кому-нибудь, кто умеет писать на прологе):
Visual Prolog Код:
class predicates
    prof : (unsigned* List, function{unsigned*, unsigned*}) -> real Sec.
clauses
    prof(List, Function) = performanceCounter::run2seconds({  :- _ = Function(List) }).

class predicates
    makeList : (unsigned N) -> unsigned* List.
clauses
    makeList(N) =
        [ X ||
            _I = std::cIterate(N),
            X = math::random(10 * N)
        ].

clauses
    run() :-
        foreach N0 = std::fromTo(1, 100) do
            N = 1000 * N0,
            memory::garbageCollect(),
            List = makeList(N),
            Sln = prof(List, algNlnN),
            S3 = prof(List, algN3),
            stdio::writef("%5d,%,%\n", N, Sln, S3)
%            Result1 = algNlnN(List),
%            Result2 = algN3(List),
%            stdio::writef("%   % \n", Result1, Result2),
%            try
%                Result1 == Result2
%            catch TraceId do
%                stdio::writef("List:% \n", List),
%                exception::continue_unknown(TraceId)
%            end try
        end foreach.
Ответить с цитированием
Ads