purebasic.info

PureBasic forum
Текущее время: Сб ноя 17, 2018 3:33 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
СообщениеДобавлено: Вт мар 01, 2016 5:58 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
kindar, глупо сравнивать ассемблер со скриптами.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 6:11 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
MrF писал(а):
kindar, глупо сравнивать ассемблер со скриптами.

почему глупо?

сейчас я решаю на каком языке переписать приложение работающее на php.
и мне важно насколько быстрее будет работать .

выбор идет между нескольких языков. мне нужно выбрать самый оптимальный язык, и быстрый и чтобы не писать километры кода .

буду признателен если ктото проверит на дельфи.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 7:28 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
Потому что ассемблер работает непосредственно с инструкциями процессора, это априори работает быстрее, чем любые скрипты.
kindar писал(а):
и мне важно насколько быстрее будет работать

Смотря как оптимизируешь и на каких ПК будешь программу использовать.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 8:06 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
MrF писал(а):
Потому что ассемблер работает непосредственно с инструкциями процессора, это априори работает быстрее, чем любые скрипты.
kindar писал(а):
и мне важно насколько быстрее будет работать

Смотря как оптимизируешь и на каких ПК будешь программу использовать.


ну к примеру вот такой , i3-2370m 2.4GHz 4 ядра. см картинку.
на тесте примерно такой же сервер но с линуксом.

поделитесь секретом КАК можно оптимизировать выше код чтоб он стал в несколько раз быстрее?


Вложения:
2016-03-01_200339.png [1.91 KiB]
Скачиваний: 0
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 8:50 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
kindar писал(а):
поделитесь секретом КАК можно оптимизировать выше код чтоб он стал в несколько раз быстрее?

Именно этот код? Переписать на фасме. Можно еще инструкции sse2/3 использовать. А можно другой алго использовать, в одну строку
Код:
1
Debug ATan(1) * 4


Или в несколько
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#SCALE = 10000
#ARRINT=  2000
 
Procedure Pi(Digits)
  Protected First=#True, Text$
  Protected Carry, i, j, sum
  Dim Arr(Digits)
  For i=0 To Digits
    Arr(i)=#ARRINT
  Next
  i=Digits
  While i>0
    sum=0
    j=i
    While j>0
      sum*j+#SCALE*|!REG3XP3!>arr(j)
      Arr(j)=sum%(j*2-1)
      sum/(j*2-1)
      j-1
    Wend
    Text$ = RSet(Str(Carry+sum/#SCALE),4,"0")
    If First
      Text$ = ReplaceString(Text$,"3","3.")
      First = #False
    EndIf
    Print(Text$)
    Carry=sum%#SCALE
    i-14
  Wend
EndProcedure
 
If OpenConsole()
   Time=GetTickCount_()
  Pi(24*1024)
  timenew=GetTickCount_()-Time
EndIf
 
 MessageRequester("", Str(timenew))
 


Но помоему последний код врет после какого-то числа.

зы: хотя нет, не врет. Сверился с этим http://data.unionbytes.de/Pi1000000.txt
Получается, что за 2-3 секунды получает после запятой 7к знаков


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 9:28 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
вроде по теме не раз обговаривалось что мы не пи здесь вычисляем. а производительность на разных языках на ОДИНАКОВОМ алгоритме.

напишите ТОТЖЕ САМЫЙ алгоритм лучше на других языках.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 9:37 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
kindar писал(а):
вроде по теме не раз обговаривалось что мы не пи здесь вычисляем. а производительность на разных языках на ОДИНАКОВОМ алгоритме.

Это офтоп уже. Ни в заголовке темы, ни в первом посте ничего подобного нет. Буквально - проверяем на сколько быстро выполнит комп приведенный код.
kindar писал(а):
на ОДИНАКОВОМ алгоритме

Зачем тогда про оптимизацию спрашивать? Оптимизация подразумевает под собой изменение алгоритма.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 9:44 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
MrF писал(а):
kindar писал(а):
вроде по теме не раз обговаривалось что мы не пи здесь вычисляем. а производительность на разных языках на ОДИНАКОВОМ алгоритме.

Это офтоп уже. Ни в заголовке темы, ни в первом посте ничего подобного нет. Буквально - проверяем на сколько быстро выполнит комп приведенный код.
kindar писал(а):
на ОДИНАКОВОМ алгоритме

Зачем тогда про оптимизацию спрашивать? Оптимизация подразумевает под собой изменение алгоритма.


Буквально - проверяем на сколько быстро выполнит комп приведенный код.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 9:56 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
:D А ты сможешь где-то кроме пурика запустить приведенный код? Ты наверно путаешь формулу и код?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 11:30 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
так вот такой же алгоритм я выше запускал на php

Цитата:
Когда кончаются факты, докопайтесь до орфографии оппонента.

я так понимаю сказать по сути беседы вам нечем?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 01, 2016 11:54 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Выше уже написал что php интерпретируемый, а на интерпретацию требуется время, причем существенное.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср мар 02, 2016 12:46 am 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
kindar писал(а):
так вот такой же алгоритм я выше запускал на php

Ты алго портировал на пхп. Код из первого поста ты не сможешь запустить на пхп, очевидно же. А тема вовсе не про это.

kindar писал(а):
Когда кончаются факты, докопайтесь до орфографии оппонента.

я так понимаю сказать по сути беседы вам нечем?

Ну кроме того, что есть ошибки - начинаешь предложение с маленькой буквы, других ошибок я у тебя не заметил(не считая пунктуационных). И до этого момента я про них не говорил. А говорю я обычно ртом, но на форуме приходится печатать, и как ни странно, пальцами. Так что мне есть чем говорить :D
Тебя очень сложно понять. Сначала ты спрашиваешь как оптимизировать программу, а потом оказывается, что нужна не оптимизация, а порт на другие языки одного и того же алго. Но я уже и в этом не уверен. Давай сначала в этом разберемся, но в другой теме и в оффтопе. Ибо тема в
Код:
1
OpenSource (Небольшие (или большие) программки на PureBasic с открытым исходным кодом) 

. Причем тут другие языки?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 08, 2016 8:32 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
kindar писал(а):
очень странный результат для php

на PB

Точность Пи= 7Точность = 0 зн. после запятой.Время вычисления =187 мсек.

на php
3.78046917915 секунд !!!!
в 20 раз!
вроде по одному ядру используется.

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$tocnost =Pow(10,7 * -1);
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
do {
    $n=$n+1;
    $S1=$S2+4/(2*$n-1);
    $n=$n+1;
    $S2=$S1-4/(2*$n-1);
    //echo '<br />'.$S1.'-'.$S2 ;
} while (($S1-$S2) > $tocnost);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo " $time секунд <br />";
 
?>;




c++ 203ms
компилятор minGW(TDM-GCC-32)



Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "straus.h"
using namespace std;
int main(int argc, char **argv)
{
   
    double tocnost =pow(10,7 * -1);
    double s1, s2;
    s1=0.0;
    s2=0.0;
    double n = 0.0;
   
    unsigned int start_time =  clock(); // начальное время
   
    do {
    n=n+1;
    s1=s2+4/(2*n-1);
    n=n+1;
    s2=s1-4/(2*n-1);
   
} while ((s1-s2) > tocnost);
 
    unsigned int end_time = clock();
    unsigned int search_time = end_time - start_time;  
   
    cout << "---- n="<<n << "  s1=" << s1 << " s2="<< s2 << endl;
    cout << "time delta ="<< search_time << "ms" << endl;
    return 0;
}
 



Вложения:
2016-03-08_202712.png [5.06 KiB]
Скачиваний: 0
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 08, 2016 8:51 pm 
Не в сети
док

Зарегистрирован: Чт авг 15, 2013 6:25 pm
Сообщений: 172
Благодарил (а): 38 раз.
Поблагодарили: 1 раз.
Пункты репутации: 5
Итого выходит так

1) PB 187ms
2)c++ 204ms
3)php7 2400ms
4)php5 3780ms

зы. пришлось учить с++

Для танкистов. тест не предназначен для сталкивания лбом любителей разных языков.
тест исключительно чтобы понять смысл перехода с php5 в моем текущем проекте на другой язык.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4, 5, 6

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB