1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Lyon1998-pikapython

 / Детали:

Сравнение pikapython и Lua в контексте функции fib, а также возможности повышения эффективности виртуальной...

Предстоит сделать
Владелец
Создано  
24.04.2025

машины всё ещё имеют большой потенциал для улучшения.

Платформы собраны с использованием Windows 10 и Visual Studio 2017, версия pikapython 1.13, Lua 5.3.6, x64 release.
----------------------------Код pikapython 1.13:------------------------------------

import time

def fib_recursive(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib_recursive(n-1) + fib_recursive(n-2)

tmstart = time.tick_ms()
fib_recursive(25)
tmend = time.tick_ms()
print(tmend - tmstart)

---------------------------Код на Lua:----------------------------------

function fibonacci(n)
    if n <= 1 then
        return n
    else
        return fibonacci(n-1) + fibonacci(n-2)
    end
end

function measure_fib_time(n)
    local startTime = os.clock()
    local result = fibonacci(n)
    local endTime = os.clock()

    -- os.clock() возвращает время в секундах, умножаем на 1000 для перевода в миллисекунды
    local elapsedTime = (endTime - startTime) * 1000
    return result, elapsedTime
end


-- Пример: вычисление 25-го числа Фибоначчи и времени его вычисления
local result, timeTaken = measure_fib_time(25)
print("Fibonacci(25) =", result, "Time taken:", timeTaken, "ms")

===============Результат выполнения pikapython: в миллисекундах=================

C:\Users\Administrator\Downloads>pika fib.py

~~~/ POWERED BY \~~~
~  pikapython.com  ~
~~~~~~~~~~~~~~~~~~~~
(pikascript) pika compiler:
  compiling fib.py...
  compiling time.py...
  linking pikascript-api/pikaModules_cache.py.a...
(pikascript) all succeed.

16972 

================Результат выполнения Lua: в миллисекундах========================

C:\Users\Administrator\Downloads\>lua53.exe fib.lua
Fibonacci(25) = 75025   Time taken:     13.0    ms

Виртуальная машина pikapython имеет большой потенциал для оптимизации...

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/Lyon1998-pikapython.git
git@api.gitlife.ru:oschina-mirror/Lyon1998-pikapython.git
oschina-mirror
Lyon1998-pikapython
Lyon1998-pikapython