Forum Życie Wieczne Strona Główna Życie Wieczne

 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Kompilator QuickBasic
Idź do strony Poprzedni  1, 2
 
Napisz nowy temat   Odpowiedz do tematu    Forum Życie Wieczne Strona Główna -> Offtopic
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Piotr-246
Gość






PostWysłany: Czw 13:56, 28 Sty 2021    Temat postu:

Podsumowanie - przeliczenie na jednorazowe wykonanie polecenia:

Pusta pętla:

I: 0.00024 cyknięcia
K: 0.00021 cyknięcia (można przyjąć jako jednostkę, choć nie mam pewności czy to jest taka sama jednostka co maszynowa instrukcja NOP - No Operation)


Odczyt s=sin(3.14159):

I: 0.00124 cyknięcia (5.9 jednostek)
K: 0.00100 cyknięcia (4.77 jednostek)


Dodawanie a = 1.013456789# + 2.0123456789#

I: 0.00041 cyknięcia (1.96 jednostek)
K: 0.00026 cyknięcia (1.24 jednostek)

(Przy czym próba z różną ilością cyfr po przecinku daje takie same rezultaty)


Potęgowanie. Liczba podniesiona do kwadratu:

I: 0.00142 cyknięcia (6.76 jednostek) gdy operacja jest oznaczona znakiem ^2
I: 0.00041 cyknięcia (1.96 jednostek) gdy operacja jest rozpisana na mnożenie
K: 0.00113 cyknięcia (5.38 jednostek) gdy operacja jest oznaczona jest znakiem ^2
K: 0.00026 cyknięcia (1.24 jednostek) gdy operacja jest rozpisana na mnożenie


Odczyt z tablicy liczbowej a typu Integer do zmiennej b:

I: 0.00063 cyknięcia (3 jednostki) - do zmiennej b, która nie jest typu Integer.
I: 0.00052 cyknięcia (2.48 jednostki) - do zmiennej b, która jest typu Integer.
K: 0.00035 cyknięcia (1.67 jednostki) - do zmiennej b, która nie jest typu Integer.
K: 0.00023 cyknięcia (1.1 jednostki) - do zmiennej b, która jest typu Integer.


Odczyt z tablicy znakowej a (jednoznakowej) do zmiennej b:

I: 0.00184 cyknięcia (8.76 jednostki), gdy zmienna b nie jest zadeklarowana jako ciąg jednoznakowy
I: 0.00195 cyknięcia (9.29 jednostki), gdy zmienna b jest zadeklarowana jako ciąg jednoznakowy
K: 0.00130 cyknięcia (6.19 jednostki), gdy zmienna b nie jest zadeklarowana jako ciąg jednoznakowy
K: 0.00042 cyknięcia (2 jednostki), gdy zmienna b jest zadeklarowana jako ciąg jednoznakowy


Rozpisując pętle pustą na dwie pętle, w sumie wykonane 100 tysięcy razy:

I: 0.00028 cyknięcia (1.33 jednostki)
K: 0.00021 cyknięcia (1 jednostka)

Rozpisanie pętli pustej na 5 małych pętli:

I: 0.00034 cyknięcia (1.62 jednostki)
K: 0.00026 cyknięcia (1.24)


100 tysięcy razy odczyt komórki pamięci.

I: 0.00083 cyknięcia (3,93 jednostki)
K: 0.00037 cyknięcia (1.73 jednostki)


100 razy wpis wartości do komórki pamięci:

I:0.00074 cyknięcia (3.52 jednostki)
K:0.00023 cyknięcia (1.1 jednostki)
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Piotr-246
Gość






PostWysłany: Czw 16:20, 28 Sty 2021    Temat postu:

Użycie instrukcji GET - pobranie tylko 1 punktu, jednak nie 100 tysięcy razy, a 10 tysięcy

I:35 cyknięć
K:26 cyknięć

w przeliczeniu na jednostki będzie to:

I:0.00350 cyknięcia (16.67 jednostek)
K:0.00260 cyknięcia (12.38 jednostek)


SCREEN 13
DEF SEG = 0

DIM a(0 TO 2) AS INTEGER

t0 = PEEK(1132)
FOR i = 1 TO 10000
GET (100, 100)-(100, 100), a
NEXT i
t1 = PEEK(1132)
SCREEN 0: PRINT t0; t1, t1 - t0
INPUT a
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Piotr-246
Gość






PostWysłany: Czw 16:30, 28 Sty 2021    Temat postu:

10 tysięcy razy pobranie fragmentu ekranu instrukcją GET, Lecz obszar 100 razy większy.


I:68 cyknięć
I:56 cyknięć

W przeliczeniu na jednostki:


I:0.0068 (32.38 jednostek)
K:0.0056 (26.67 jednostek)


SCREEN 13
DEF SEG = 0

DIM a(0 TO 51) AS INTEGER

t0 = PEEK(1132)
FOR i = 1 TO 10000
GET (100, 100)-(109, 109), a
NEXT i
t1 = PEEK(1132)
PRINT t0; t1, t1 - t0
input a
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Piotr-246
Gość






PostWysłany: Czw 16:36, 28 Sty 2021    Temat postu:

Teraz widać, że o ile polecenie Peek potrzebuje 1.73 jednostki czasu na pobranie jednej komórki pamięci, o tyle 100 komórek pamięci ekranu pobranych poleceniem GET porzebuje tylko 26.67 jednostek czasu

Get działa tu kilka razy szybciej niż Peek. Co może oznaczać, że GET wykorzystuje wewnętrzne mechanizmy komputera do przenoszenia dużych strumieni danych.
Powrót do góry
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Życie Wieczne Strona Główna -> Offtopic Wszystkie czasy w strefie EET (Europa)
Idź do strony Poprzedni  1, 2
Strona 2 z 2

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin