Проект карты Саратова

В этой теме вы можете рассказать о своём проекте, и выслушать конструктивную и не очень критику о нём.
Правила форума
Только аргументированное обсуждение проектов в зоне vfose.ru
Флуд и неуважительное отношение к другим участникам форума будут караться баном.

Re: Проект карты Саратова

Сообщение zk » 02 май 2008, 13:20

Lundil писал(а):Я не говорю про средства PHP сдесь ими пользоваться нельзя - писалось расширение к PHP чтобы карту рисовать. Вся отрисовка делалась в библиотеке 1-й функцией.

Тогда всё понятно, но мы же ничего не знаем об архитектуре этого сервиса, кстати было бы очень интересно небольшое изложение используемых технологий и приёмов, если это не секрет.
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Проект карты Саратова

Сообщение Lundil » 02 май 2008, 14:23

zk писал(а):
Lundil писал(а):Я не говорю про средства PHP сдесь ими пользоваться нельзя - писалось расширение к PHP чтобы карту рисовать. Вся отрисовка делалась в библиотеке 1-й функцией.

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

Не секрет. Программы изначальную все видели... Так вот - так как отрисовка крайне критична ко времени и делается много операций, то про средства PHP пришлось как-то забыть (интерпретатор никогда не сравнится с компилятором по скорости). Тогда взялся кромсать программу, выкинул все графическое, исправил половину оставшегося кода для работы в консольном режиме без подгрузки графических библиотек.
Залез в интернет - узнал как на C пишутся библиотеки расширения PHP. Написал промежуточную библиотеку которая из себя вызывает ту "обкромсаную" (че-то прям ее в PHP включить не получилось, по этому такой костыль сделал). Ну вот пересобрал PHP (долгая история)... ну вот ОНО и работает...
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение zk » 02 май 2008, 14:37

Lundil писал(а):Залез в интернет - узнал как на C пишутся библиотеки расширения PHP. Написал промежуточную библиотеку которая из себя вызывает ту "обкромсаную" (че-то прям ее в PHP включить не получилось, по этому такой костыль сделал).

А почему было именно такое решение? Почему нельзя было вызывать генератор карты в качестве отдельной программы (exec) или например повесить её в качестве демона? Скорость?
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Проект карты Саратова

Сообщение Lundil » 02 май 2008, 14:50

zk писал(а):
Lundil писал(а):Залез в интернет - узнал как на C пишутся библиотеки расширения PHP. Написал промежуточную библиотеку которая из себя вызывает ту "обкромсаную" (че-то прям ее в PHP включить не получилось, по этому такой костыль сделал).

А почему было именно такое решение? Почему нельзя было вызывать генератор карты в качестве отдельной программы (exec) или например повесить её в качестве демона? Скорость?

На самом деле с exec вариант тоже очень хороший работал и с ним как с самым простым вариантом. А когда понял что особо выгрыша в скорости расширение не дает, а усложнется все во много раз... Расширение похерил..)))))) и стал пользоваться просто exec...))) предыдуший пост написан для наведения ужаса на читателя.)))))) Но расширение действительно было. :oops:

По поводу демона, как с ним взаимодействовать? через сокеты? через tcp/ip? это опять же усложнение не оправданное.
Хотя вариант с расширением действительно оптимален, потому что библиотека подгружается в память только 1 раз при старте веб-сервера, и оттуда не исчезает. А exec - теоритически каждый раз считывает прогу с винта (но есть такая замечательна вешь - кеш, где ОС хранит наиболее частые обращения к винчестеру, так что сдесь потери не велики).

Самое большое по времени занимает не дисковые операции,а преобразование образа в памяти в картинку PNG (55% всего времени). Но от этого некуда не деться. Либо переписывать процедуру преобразования, либо... (не хочу ереписывать, открыл спецификацию PNG формата и у меня волосы на жопе зашевелились...).

П.С.
ну понтонулся в предыдущем посте, не карайте сильно..)))
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение Lundil » 02 май 2008, 15:03

да и еще поправка - пересобирать PHP при написании расширений не нужно. Расширения там внешние все. Просто перед началом работы с новыми функцими необходимо вызвать функцию ......какую-то (вспомнил функция - dl() )..... с указанием имени библиотеки.. и все что там объвленно как external и описанно в соответствии с требованими параметров и типов (см. http://www.google.ru).. становится доступно для прямого вызова.
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение Lundil » 03 май 2008, 00:58

наконец руки дошли прикрутить счетчик на сайт, отрисовывается на главной странице внизу. Теперь будет еще источник кроме webalizer. Хоть смотреть буду чаще..)))
Народ заходите счетчик увеличивайте.. :wink:
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение zk » 03 май 2008, 11:18

Lundil писал(а):По поводу демона, как с ним взаимодействовать? через сокеты? через tcp/ip? это опять же усложнение не оправданное.

Усложнение там не особое, сделать через те-же семафоры... Но в принципе в Unix операция exec не сильно затратная по ресурсам.
Lundil писал(а):Самое большое по времени занимает не дисковые операции,а преобразование образа в памяти в картинку PNG (55% всего времени).

Ну как говорится раз изобрёл велосипед, сам теперь с ним и мучайся. Ты видел как у гугломапа карта сделана? Там она порезана на квадраты, которые подгружаются и кешируются как на сервере так и у клиента. И когда там двигаешь картинку - соседние участки как правило уже подгружены, и нет момента пропадания карты. Я уж и не говорю о том что им не надо генерить картинки при каждом перемещении карты.
Lundil писал(а):ну понтонулся в предыдущем посте, не карайте сильно..)))

Напугал, да =)
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Проект карты Саратова

Сообщение Lundil » 03 май 2008, 17:56

эээ офтопик... просто красиво...
Вложения
saratov.jpg
Незнаю к чему бы это здесь оказалось..
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение Lundil » 03 май 2008, 23:01

zk писал(а):Усложнение там не особое, сделать через те-же семафоры...

семафоры дают ответ да/нет и не более того (разрешить/запретить). К томуже почему-то в памяти у меня засела четкая ассоциация "семафоры -> межпроцессное_взаимодействие -> в ВИНДЕ". Хотя понимаю что сам термин к операционке не привязан, но все же в *nix системах я предполагаю разумнее сокеты (семафоры с крутыми возможностями) использовать и через них же передавать массивы данных. К тому же сокеты используются не для блокировки чего-либо и ответа (да/нет), а для создания дочернего процесса, который будет обрабатывать поступающие данные.
НО процесс все равно создается!
Аватара пользователя
Lundil
Активный участник
 
Сообщения: 330
Зарегистрирован: 31 окт 2007, 10:41
Откуда: Саратов
Домен: http://mcsar.ru

Re: Проект карты Саратова

Сообщение zk » 04 май 2008, 01:31

Lundil писал(а):семафоры дают ответ да/нет и не более того (разрешить/запретить). К томуже почему-то в памяти у меня засела четкая ассоциация "семафоры -> межпроцессное_взаимодействие -> в ВИНДЕ". Хотя понимаю что сам термин к операционке не привязан, но все же в *nix системах я предполагаю разумнее сокеты (семафоры с крутыми возможностями) использовать и через них же передавать массивы данных. К тому же сокеты используются не для блокировки чего-либо и ответа (да/нет), а для создания дочернего процесса, который будет обрабатывать поступающие данные.
]

Ты не прав.
http://php.hsdn.org/manual/ru/book.sem.php
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Пред.След.

Вернуться в Проекты наших пользователей

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

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

cron