LINUX.ORG.RU

Разработка проекта - вопросы невкурившего новичка

 , ,


0

1

Всем привет.

Предъистория: вообще всегда думал, что стану писать десктопные приложения и тому подобное. Вон, даже книга по c++ лежит рядышком. Но, вдруг в голову стукнула одна мысль, при обдумывании которой мало того, что минусы не находятся, а только плюсы все более рождаются. Вот и решил попробовать все это дело реализовать, да посмотреть куда и к чему меня путь Веб может привести.

1. Правильно ли я понимаю, что основная нагрузка и падение производительности зависит от двух факторов: веб-сервер и база данных. А в остальном каждый сайт относительно легковесный, и мог бы обработать горы запросов, если бы не уперся в железо.

2. Категорически не переношу php. Но Python ест много памяти (по многим комментам на лоре сделал такой вывод), а Ruby on Rails вдобавок еще и медленее Python. Есть сегодня какой нибудь ЯП так сказать «свежачок». Думаю, было бы интересно сделать свой первый проект и сразу на чем-то неопробованном.

/* отлично понимаю, что возможно проект дальше моего компа может и не взлететь */

Но Python ест много памяти (по многим комментам на лоре сделал такой вывод),
а Ruby on Rails вдобавок еще и медленее Python.

не читайте советских газет до обеда

алсо да, в чем идея-то?

marvin_yorke ★★★
()

основная нагрузка и падение производительности

В приличном обществе за преждевременную оптимизацию бьют канделябром по морде. И правильно делают!

anonymous
()

1. Правильно ли я понимаю, что основная нагрузка и падение производительности зависит от двух факторов: веб-сервер и база данных. А в остальном каждый сайт относительно легковесный, и мог бы обработать горы запросов, если бы не уперся в железо.

Ты просто мало видел веб-приложений. Как правило, используются отдельно веб-сервер (тут нагрузка не сильно большая), application server (java, python, php и т. п. - тут нагрузка обычно большая), сервер БД (тут нагрузка может быть любая, зависит от кеширования и типа запросов).

Но Python ест много памяти (по многим комментам на лоре сделал такой вывод), а Ruby on Rails вдобавок еще и медленее Python. Есть сегодня какой нибудь ЯП так сказать «свежачок». Думаю, было бы интересно сделать свой первый проект и сразу на чем-то неопробованном.

Забей, обычно узкое место - программист. Если приложение написано криво, то не важно, на чём. Плюс, если планируешь долгоживущий проект, то помни, что с ним ковыряться и поддерживать придётся не только тебе. Хочешь чего-нибудь свежего - попробуй, например Scala.

Shtsh ★★★★
()
Ответ на: комментарий от marvin_yorke

не читайте советских газет до обеда

нудакакжещаспрямага! А больше ничего тебя не смутило? Например:

по многим комментам на лоре сделал такой вывод

anonymous
()
Ответ на: комментарий от Chaser_Andrey

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

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

azure ★★
()
Ответ на: комментарий от azure

не знаю

Но однозначно стоит обратить внимание на Wt, и подобные вещи. Буду копать в этом направлении.

muteki_okami
() автор топика
Ответ на: комментарий от anonymous

вопрос в том

Стоит ли задумываться над NoSql решениями?

И можно ли обойтись использованием c/c++ вместо того же пхп?

muteki_okami
() автор топика

Scala, Groovy++, C#

anonymous
()
Ответ на: вопрос в том от muteki_okami

использованием c/c++

ASP.NET бери. C# тот же С++ только более «красивый».

anonymous
()
Ответ на: вопрос в том от muteki_okami

И можно ли обойтись использованием c/c++ вместо того же пхп?

А почему нельзя?

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

В то время как следовало бы запустить веб-приложение один раз, оно инициализируется один раз, считывает конфиги, устанавливает конекты, инициализирует все свои объекты, загружает все в память. И при получении запроса производится только та работа, которая необходима, а именно: генерация выхлопа на основе входных данных. В таком режиме работы производительность веб приложений могла бы ощутимо возрасти. Видимо, так работают веб-приложения на java. И это концептуально верно.

azure ★★
()
Ответ на: вопрос в том от muteki_okami

Стоит ли задумываться над NoSql решениями? И можно ли обойтись использованием c/c++ вместо того же пхп?

Задумайся лучше над покупкой мозгов ^W^W изучением матчасти. Книжки почитай, что ли. Или хотя бы википедию: http://ru.wikipedia.org/wiki/Философия_UNIX

anonymous
()

Но Python ест много памяти (по многим комментам на лоре сделал такой вывод)

По коментам сделал вывод, хаха

Ruby on Rails вдобавок еще и медленее

Просто хаха

Есть сегодня какой нибудь ЯП так сказать «свежачок». Думаю, было бы интересно сделать свой первый проект и сразу на чем-то неопробованном.

Первый. На опробованном. Обречено сразу же. До начала.

И вообще, сайты тормозят только от множества запросов к БД там, где можно сделать один, но умный.

Alve ★★★★★
()
Ответ на: комментарий от anonymous

по многим комментам на лоре сделал такой вывод

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

marvin_yorke ★★★
()
Ответ на: комментарий от Alve

И вообще, сайты тормозят только от множества запросов к БД там, где можно сделать один, но умный.

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

Shtsh ★★★★
()
Ответ на: комментарий от anonymous

Предыстория

Быстрофикс, лол.

anonymous
()

2. Под веб можно писать хоть на плюсах, хоть на хаскеле, хоть на баше. Попробуй Yesod.

Miguel ★★★★★
()
Ответ на: комментарий от anonymous

Ога. Будет на фасме под КолибриОсь писать, чтоб выжать максимум из железа, лол.

anonymous
()
Ответ на: комментарий от Shtsh

И вообще, сайты тормозят только от множества запросов к БД там, где можно ниделать ни одного, правильно кешируя данные

Обвиус викч

theos ★★★
()
Ответ на: комментарий от theos

К сожалению, какие-то запросы всё равно придётся в БД направлять. Но, конечно, в хайлоаде кеширование обязательно.

Shtsh ★★★★
()

Но Python ест много памяти (по многим комментам на лоре сделал такой вывод)

после Java Python покажется легковесным скриптиком на Си :)

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

после Java Python покажется легковесным скриптиком на Си :)

Да это вы просто ее не умеете готовить. У меня middle-ware сервер на ~500rps на Java прекрасно уживался в мегабайтах 20-ти.

theos ★★★
()

На lua попробуй, оно очень шустрое.

Тока обычно все тормоза от неумелой работы с СУБД. Если возьмешь, скажем постгр, то там почти все проблемы с перфомансом решены, остается только научиться все это правильно использовать.

Можешь еще поизголяться так: дергай из питона хранимки на постгре. Питоном же отрисовывай вьюшки на какой-нибудь жинже2. Фреймворк возьми какой-нибудь микро.

dizza ★★★★★
()
Ответ на: комментарий от Alve

Ну, я писал раньше, что очень часто узкое место не технология, а разработчик.

Shtsh ★★★★
()
Ответ на: комментарий от dizza

А что делал этот сервер?

Аутентификация, авторизация, уровень абстракции поверх протокола передачи (демультепликсировал разных пользователей с разной атворизацией и на разных протоколах в один канал). Да, не очень много. Но на самом деле джава сервера «много жрут» потому что сами себе кэши (что очень эффективно по производительности), а в питонах и прочих php используют строго аля-memcached. Так что тупа срванивать объем процессов будет не корректно.

theos ★★★
()
Ответ на: комментарий от theos

и чо? Ну у меня скриптик кушает 2Мб

http://ompldr.org/vZDY0aw

и что из этого? Но это UWSGI + Python + Redis + sendfile. Большой Java application server у нас сжирает по 2Гб и под меньшей нагрузкой. Будем сравнивать разного уровня приложения?

xpahos ★★★★★
()
Ответ на: комментарий от Shtsh

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

Когда нужна сотня мелких — надо делать рефакторинг.

tensai_cirno ★★★★★
()
Ответ на: комментарий от xpahos

Будем сравнивать разного уровня приложения?

Я лишь привел пример что сервера на java это совсем не обязательно много памяти, можно и экономично писать. Да, если весь кэш держать в memcache/redis то и на джава сервера будут не «по 2 Гб».

theos ★★★
()
Ответ на: комментарий от tensai_cirno

Да. Но если это не вызывает проблем, то на каждый недостаток рефакторинг делать нереально.

Shtsh ★★★★
()

Ведь наверняка очень старая, ровесница мне или старше.

Ещё одно быдло, думающее, что использование модного ЯП сделает его великим программистом, без необходимости изучать и уметь пользоваться.

Фейспалм товарищи, фейспалм.

VirRaa ★★★
()
Ответ на: комментарий от xpahos

В memcache хранят результаты обращения к базе данных. При чем тут JVM?

Я о том, что при использовании ORM в джаве принято кешировать объекты прямо в VM, в то время как в PHP/Python/etc принято кешировать и хранить состояние только в memcached: PHP - потому что иначе он не умеет, Python - потому что тогда будет жрать хуже джавы.

theos ★★★
()
Ответ на: комментарий от theos

а что не так? ТС в творческом поиске вот я и предложил ему отличную связку на которой можно реализовывать высоко нагруженные сайты. и не банальщина как пхп + апач.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

а если мсье ТС любит с «изюминкой», то пускай напишет какой нибудь движок форума на Brainfuck.

«Думаю, было бы интересно сделать свой первый проект и сразу на чем-то неопробованном.»

Подходит по всем параметрам.

TDrive ★★★★★
()
Ответ на: комментарий от theos

тут в принципе нет кнопки просто «ответить» только «Ответить на это сообщение» вот и приходится «отвечать» на последнее сообщение в теме.

TDrive ★★★★★
()

Право слово. Ты какой то странный. Что для тебя означает «ест много памяти»? Кто-то начинает верещать от того, что JVM схавала 40 мегабайт ОЗУ, а кому то плевать, что она например жрет 500 или 1000 мегабайт. Самое главное что ты в короткие сроки реализовал задуманное. Память сегодня дешевая и задумываться о ней, по большей степени глупо, ведь ты не для embedded устройств кодишь, а пишешь веб приложение, которое будет крутиться на какой-нибудь VPS'ке с доброй парой гигабайт ОЗУ на борту.

Думаю, было бы интересно сделать свой первый проект и сразу на чем-то неопробованном.

Посмотри на Scala + Lift. Говорят годно. Формочки шлепать для веба самое оно. На сервере помимо Scala можно заюзать Akka. Или например взять Groovy + Grails.

anonymous
()
Ответ на: комментарий от anonymous

Вспомнил. Можешь потыкать Scala + Play 2.0. Эдакий RoR из мира JVM, только быстрее в несколько раз и в комплекте идет склад с батарейками.

anonymous
()
Ответ на: комментарий от TDrive

По твоей логике нельзя создать первое сообщение. Нужно жать «ответить на это сообщение» на посте:

Метки: идея, проект, социум

muteki_okami (27.03.2012 15:58:34)
     Ответить на это сообщение Отслеживать 
theos ★★★
()
Ответ на: комментарий от HerrWeigel

Скриптик на Си - это сильно

ты не слышал про FastCGI?

xpahos ★★★★★
()
Ответ на: комментарий от theos

Я о том, что при использовании ORM в джаве принято кешировать объекты прямо в VM, в то время как в PHP/Python/etc принято кешировать и хранить состояние только в memcached: PHP - потому что иначе он не умеет, Python - потому что тогда будет жрать хуже джавы.

Чаго-чаго?

Test11
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.