pyton плюсы и минусы?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: pyton плюсы и минусы?

Сообщение sign » 11.05.2016 06:45:59

mirk писал(а): В питоне мало пхпстов, которые даже с 5-летним стажем каждый день в поисковик вводят "php substr", т.к. не в состоянии запомнить синтаксис.

Вы в каком веке застряли?

Или продолжаете писать программы в блокноте? :mrgreen:

1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: pyton плюсы и минусы?

Сообщение azsx » 11.05.2016 07:29:11

когда начинаете вы обсуждать скорость питон и пхп, файлы или бд - я вот всё понять не могу. Первый же хостер, выделенный канал на 1 гбит = 30 тысяч рублей. 1 гбит = 125 мбайт. Скорость отдачи hdd винта от 100 мбайт и выше. Соответственно ssd да еще и в раид 10 может быть выше в 3 - 6 раз. И вот теперь чо я не понимаю.
По моим меркам чтобы проекту реально понадобилась производительность от языка на сервере (то есть не пхп, а питон, например) - надо какие то очень ресурсоемкие скрипты. Так как в основном сайты сливаются по скорости работы бд или по каналу.
Вот я могу понять скрипт который должен месяцами что то считать. Его лучше писать на питон, верно? Или нет?
Приведите, пожалуйста, пример скрипта (страницы) которая однозначно на питоне будет намного круче, чем пхп?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: pyton плюсы и минусы?

Сообщение debi12345 » 11.05.2016 08:12:21

Или продолжаете писать программы в блокноте?

Коллега скорее всего имеет ввиду (типа само-подсказывающий) LISP-синтаксис в духе:
Код: Выделить всё
set sq [string range <string> begin|<M> <N>|end]

совсем забывая что PHP возник не как некая хотелка "чайников", в как скрпитовая адаптация "С" опытных С-шников, которые по инерции перенесли (и теперь переносят) привычные им конструкции.

Добавлено спустя 2 минуты 28 секунд:
Вот я могу понять скрипт который должен месяцами что то считать. Его лучше писать на питон, верно? Или нет?

Если скрипт, то да - Perl или Python. А еще лучше переписать на нативный язык вроде Паскаля или С или хотя бы Java.
Python по факту заменил LISP в CAD-3D-прогармамах (Blender,..) - там на нем написана вся "автоматика".

Добавлено спустя 11 минут 15 секунд:
надо какие то очень ресурсоемкие скрипты.

Ресурсы сервера пожирает множество мелких запросов - для каждого обращения к БД раз за разом открывается-закрывется новое соединение - если не предпринять мер типа:

conn.php:
Код: Выделить всё
if ( !function_exists("DB_Connect") ) {
   function DB_Connect () {
      global $options_conn;
      $GLOBALS['conn'] = pg_connect(sprintf("host=%s dbname=%s user=%s password=%s options='%s'",
         $GLOBALS['db_host'],$GLOBALS['db_name'],$GLOBALS['db_user'],$GLOBALS['db_passwd'],$options_conn
      ));
      pg_set_client_encoding($GLOBALS['conn'],$GLOBALS['db_client_enc']);
      return $GLOBALS['conn'];
   }
}


Каждый PHP-скрипт начинается с:
Код: Выделить всё
if (!isset($GLOBALS['conn'])) DB_Connect();


хоть какой-то шанс на реюз прежнего коннекта.

ПС: также очень важно уйти от механизма явного объявления транзакций - этот механизм может понаделать беды - например обнулив всю дневную работу организации
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: pyton плюсы и минусы?

Сообщение azsx » 11.05.2016 08:44:36

Если скрипт, то да - Perl или Python. А еще лучше переписать на нативный язык вроде Паскаля или С или хотя бы Java.
Python по факту заменил LISP в CAD-3D-прогармамах (Blender,..) - там на нем написана вся "автоматика".

таким образом, если мы не знаем паскаль, а знаем питон - то скрипт 24*365 нужно писать на питон, а не пхп. Иначе паскаль круче. Именно потому другой мой товарищ и говорит, что они пишут на С и С++.
А питон - это ваще замена, например, лисп (которого я не знаю совсем). Верно?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: pyton плюсы и минусы?

Сообщение Снег Север » 11.05.2016 09:02:43

Насколько мне известно, на наследниках Лиспа, например Ruby, написаны весьма сложные и высокопроизводительные сетевые продукты. Но ИМХО, чтобы писать на таких языках, надо иметь особым образом устроенные мозги...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3059
Зарегистрирован: 27.11.2007 16:14:47

Re: pyton плюсы и минусы?

Сообщение debi12345 » 11.05.2016 09:29:49

А питон - это ваще замена, например, лисп (которого я не знаю совсем). Верно?

Не-а - это замена C-синтаксического Perl-а на аналогичный функционал в LISP-синтаксисе (для начинающих возможно проще, чем С-синтаксис).
Апгрэйд "LISP->Python" в CAD-прогах - другая история :)
PHP - это когда С-шников припахали делать динамический вэб, и они сделали привычный им инструмент. Причем по-началу другое С-подобие (Perl) даже опережало PHP в "вэбе" -пока не пошел массовый отказ от CGI.

Добавлено спустя 8 минут 7 секунд:
Именно потому другой мой товарищ и говорит, что они пишут на С и С++.

На самом деле на них писАть абсолютно терпимо :) С++ к тому же упростил главное неудобство С - работу со строками и буферами нефиксированной длины.
И прелестная читабельность за счет "#define" :
Код: Выделить всё
#include "CRequestReplicator.h"
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <errno.h>
//#include <boost/regex.hpp>

static bool ok;

enum ACTION {
    HELP=0,
    ATTEMPT, DELIVERY, RETURN, CHECK, RECHECK,
    PG_EXEC_SQL, ORA_EXEC_SQL,
    PG_TUNE_CONNECT, ORA_TUNE_CONNECT, ORA_SET_AUTOCOMMIT,
    PG_CONNECT, CHECK_PG_CONNECT, PG_DISCONNECT,
    ORA_CONNECT, CHECK_ORA_CONNECT, ORA_DISCONNECT,
    PG_PREPARE, ORA_PREPARE, FULL_PREPARE,
    SHUTDOWN, PING
};

enum CONN_PROBLEM {
    PG_PROBLEM = 5,
    ORA_PROBLEM = 6,
    BOTH_PROBLEM = 7
};

//-----------------------

bool check_uplink(const char* auplink) {
    string arg = auplink;
    ok = true;
    if ( (arg.compare("l")==0) || (arg.compare("local")==0) ) {
   return false;
    } else if ( (arg.compare("u")==0) || (arg.compare("uplink")==0) ) {
   return true;
    } else {
   ok = false;
   cerr << endl << "Допустимые значения 1-го аргумента: l[ocal]|u[plink]" << endl << endl;
   return false;
    }
}

//-----------------------

wchar_t* mb2wstr(const char* inval) {
    size_t size = strlen(inval);
#define OUTSZ (size+1)*sizeof(wchar_t)
    wchar_t* buf = (wchar_t*)malloc(OUTSZ);
    memset(buf, 0, OUTSZ);
    setlocale(LC_CTYPE,""); //  необходима, чтобы отработала "mbstowcs"
    size = mbstowcs(buf, inval, size);
    if ( size == (size_t)(-1) ) {
   free(buf);
   buf = NULL;
    } else {
   buf = (wchar_t*)realloc(buf,OUTSZ);
    }
    return buf;
#undef OUTSZ
}
[...]
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: pyton плюсы и минусы?

Сообщение mirk » 11.05.2016 10:52:06

debi12345 писал(а): на самом деле 99% замедления идет от многочисленных мелких обращений PHP к БД

Это в кривых скриптах. В нормальных скриптах это учитывается и многое кэшируется.

sign писал(а):Вы в каком веке застряли?
Или продолжаете писать программы в блокноте? :mrgreen:

Прочитайте контект фразы.

azsx писал(а):По моим меркам чтобы проекту реально понадобилась производительность от языка на сервере (то есть не пхп, а питон, например) - надо какие то очень ресурсоемкие скрипты.

Не обязательно. Скрипт может быть не требователен к ресурсам сам по себе. Но в веб-проекте при большой посещаемости этот скрипт будет вызываться миллионы раз. И уже будет важна его скорость. Ведь чем выше скорость, тем больше посещемость выдержит сервер.


debi12345 писал(а):совсем забывая что PHP возник не как некая хотелка "чайников"

Вы не правы. Пхп возник именно как хотелка чайников и созданный чайниками.
И когда чайники малость подросли, они начали фиксить то что натворили в самом начале.

debi12345 писал(а):А еще лучше переписать на нативный язык вроде Паскаля или С или хотя бы Java.

Многие так говорят, и по идее в словах прослеживается логика.
Но где тесты таких заявлений?

debi12345 писал(а):Ресурсы сервера пожирает множество мелких запросов - для каждого обращения к БД раз за разом открывается-закрывется новое соединение

Вы смеетесь?
Даже на заре пхп никто в здравом уме не делал новый коннект для каждого обращения к БД.
1 коннект на 1 HTTP запрос - да, но не на каждый SQL запрос же.

azsx писал(а):таким образом, если мы не знаем паскаль, а знаем питон - то скрипт 24*365 нужно писать на питон, а не пхп. Иначе паскаль круче.

Смотря что за работа выполняется в скрипте. Если паскаль даст прирост в скорости и эта скорость важна - нужно просто изучить паскаль и писать на нем.

azsx писал(а):Именно потому другой мой товарищ и говорит, что они пишут на С и С++.

Смотря что пишут. Многим просто лень перестраиваться и они придумывают различные отмазки.
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Re: pyton плюсы и минусы?

Сообщение debi12345 » 11.05.2016 11:12:14

1 коннект на 1 HTTP запрос - да, но не на каждый SQL запрос же.

На одну отработку каждого скрипта (не включая его инклуды)

Добавлено спустя 3 минуты 12 секунд:
Многим просто лень перестраиваться и они придумывают различные отмазки.

А также тупо больше либа при языке - например CORBA-IPC-проги по факту можно написать только на Java, C++ и Delphi.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: pyton плюсы и минусы?

Сообщение azsx » 11.05.2016 11:30:19

Не обязательно. Скрипт может быть не требователен к ресурсам сам по себе. Но в веб-проекте при большой посещаемости этот скрипт будет вызываться миллионы раз. И уже будет важна его скорость. Ведь чем выше скорость, тем больше посещемость выдержит сервер.

извините, не могу вас понять. Вот пример 10 секунд (максимум отсидит юзер на сайте) 1 000 000 хитов (вызовов скрипта) и мизерные страницы 10 кбайт. Лям умножаю на 10 кбайт и делю на 10 секунд. Таким образом я получаю траф в 1 гбайт в секунду с одного сервера на котором на каждой странице отработал скрипт. То есть вам уже надо на сервак выкупать 10 гбитный канал (30 тысяч в месяц это даже не смешно). Вот реально думаете, что в таком случае будет проблема с пхп??? По мне так проблемы начнутся намного раньше и первым делом оверлесинг каналов и дисковой подсистемы. Решать будете горизонтальным шардингом (хотя такое еще можно вытянуть вертикальным).
Или это выдуманный пример?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: pyton плюсы и минусы?

Сообщение debi12345 » 11.05.2016 12:00:12

лям умножаю на 10 кбайт и делю на 10 секунд.

Проблема в отм,что на нагруженном серваке одновременно и в случайном порядке идут запросы ко ВСЕМУ массиву данных в БД (скроллится весь массив файлов БВ - который может быть огромными) - что даже при наличии индексов (индексы ведь тоже файлы - которые тоже могут быть очень большими) создает интенсивный дисковый ввод-вывод (в тысячи раз медленнее операций в памяти). То есть головки дисков бегают - клиенты ждут :)

Добавлено спустя 8 минут 59 секунд:
Желательно иметь дисковую подсистему с упорядочение движения головок согласно очереди запросов к БД - это SCSI/SAS-диски, файловые системы типа HPHS-386 (в оси "OS/2")... на крайняк выполнять секционирование БД на меньшие файлы согласно заданного признака.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: pyton плюсы и минусы?

Сообщение azsx » 11.05.2016 12:49:05

debi12345, и?
Просто есть пользователь мирк, он пишет питон предпочтительнее пхп по производительности. В качестве примера привел, допустим скрипт запущен 1 млн раз. Но это не реальный пример!
Я не разбираюсь в питоне. Тем не менее, вы только подтвержадаете, 1 лям пользователей на сервере за 10 секунд и проблем будет немеряно с диском и каналом, до языка программирования дело не дойдет.
Вопрос, что я не понял из сообщения мирк?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: pyton плюсы и минусы?

Сообщение mirk » 11.05.2016 13:21:26

azsx писал(а):Вот пример 10 секунд (максимум отсидит юзер на сайте) 1 000 000 хитов (вызовов скрипта) и мизерные страницы 10 кбайт. Лям умножаю на 10 кбайт и делю на 10 секунд. Таким образом я получаю траф в 1 гбайт в секунду с одного сервера на котором на каждой странице отработал скрипт.

У вас формула не верная. Если скрипт выполняется 10 секунд и занимает все ресурсы, то и трафик будет 10кб/10=1кб в секунду.
Если взять 100мбит (стандартный канал) и 100кб (меньше странички уже сложно найти), то скрипт сможет отработать 125 раз, т.е. он должен выполняться 0.008c
Такие скорости далеко не у всех скриптов, поэтому сервера хостинга многих до сих порт седят на каналах 100мбит и не сильно их грузят.

Добавлено спустя 2 минуты 49 секунд:
azsx писал(а):питон предпочтительнее пхп по производительности

Не забудьте учесть пхп7 (я писал об этом много раз). Сейчас вопрос кто быстрее - нет пока тестов.
И скорость - это только 1 фактор из многих.
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Re: pyton плюсы и минусы?

Сообщение azsx » 11.05.2016 13:25:08

нет, 10 секунд - это максимум времени, которое юзер согласен ждать.
Если взять 100мбит (стандартный канал) и 100кб (меньше странички уже сложно найти), то скрипт сможет отработать 125 раз, т.е. он должен выполняться 0.008c

как вывод ваще не важно пхп у вас или питон. Не важна скорость, мы сольем сервак по ресурсам раньше, чем время выполнения скрипта станет важным.
это я не думаю о производительности бд от слова совсем.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: pyton плюсы и минусы?

Сообщение debi12345 » 11.05.2016 13:35:00

на сервере за 10 секунд и проблем будет немеряно с диском и каналом, до языка программирования дело не дойдет.

Да, дело не в языке,а в дизайне проги, который в конечном итоге (с учетом прекомпиляции и кэширования,..) должен минимизировать дисковый ввод-вывод на сервере (ну и еснно не забивать канал).

У вас формула не верная. Если скрипт выполняется 10 секунд и занимает все ресурсы, то и трафик будет 10кб/10=1кб в секунду.

Да, проблема начинается не от количества запросов, а от случайности доступа к данным в БД, возникающей при этих запросах. Каждое лишнее движение головок диска приводит к 1000 раз большим тормозам, чем должно быть по формуле.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: pyton плюсы и минусы?

Сообщение mirk » 11.05.2016 13:37:44

azsx писал(а):нет, 10 секунд - это максимум времени, которое юзер согласен ждать.

Какая связь производительности и сколько юзер согласен ждать? Это совсем другое время и складывается из других параметров. Можно конечно учесть неоднородность запросов и в такой формуле получится учесть время ожидания - но это совсем сложная и не однозначная формула получится. Как только у вас время работы скрипта не будет согласовано с производительностью сервера, то LA будет расти и быстро перекроет любое количество секунд.

azsx писал(а):как вывод ваще не важно пхп у вас или питон.

Как бы связи нет. Я описал очень упрощенную формулу чтобы показать как считается подобное. Но по этой формуле нельзя сделать выводы о применимости языка.

Добавлено спустя 1 минуту 5 секунд:
debi12345 писал(а):Каждое лишнее движение головок диска приводит к 1000 раз большим тормозам, чем должно быть по формуле.

Разумеется зависимость не линейная. И много зависит от архитектуры приложения.
Именно поэтому оценивают не по одной точке, а строят график.
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 5

Рейтинг@Mail.ru