ФорумПрограммированиеPHP для идиотов → Модуль Artichow: проблема при работе с большими массивами

Модуль Artichow: проблема при работе с большими массивами

  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 11:53

    Доброго времени суток!
    Нетривиальный вопрос к пхп-маньякам.

    Наверняка многие пользовались библиотекой artichow для рисования графиков. Встречался ли кто с такой проблемой: когда нужно отрисовать график по точкам из массива большого размера, то в аутпут ничего не выходит, т.е. ни график не рисуется, ни предупреждений, ничего…
    Экспериментальным путем было установлено, что критическое значение ~2500 точек.
    В исходниках копался - никаких ограничений в явном виде не обнаружил.
    Может кто подсказать, в чем дело?

    И возникает второй вопрос. Может artichow в принципе говно, и стоит юзать какой-нибудь другой модуль для рисования?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 апреля 2011 г. 12:15, спустя 22 минуты 9 секунд

    Экспериментальным путем было установлено, что критическое значение ~2500 точек.

    стопудово ограничение памяти (перед рисованием создается гд ресурс или тупо массивы обсчитываются и заполняются - я хуй знаю чо именно, но чтото из этого) или ограничение времени (тут зависит от того, сколько времени рисуются эти 2500 точек, если близко к 20-25 секундам, то дада, время ограничение, пхп по дефолту 30 секунд)
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 11 апреля 2011 г. 12:27, спустя 11 минут 13 секунд

    bRUtality, хз что это за библа такая, юзал последний (по сути и первый) раз Open Flash Charts (смесь флеша и пыхи). Для моей задачи вполне достаточно + сервер не грузит..
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 14:30, спустя 2 часа 3 минуты 15 секунд


    Экспериментальным путем было установлено, что критическое значение ~2500 точек.

    стопудово ограничение памяти (перед рисованием создается гд ресурс или тупо массивы обсчитываются и заполняются - я хуй знаю чо именно, но чтото из этого) или ограничение времени (тут зависит от того, сколько времени рисуются эти 2500 точек, если близко к 20-25 секундам, то дада, время ограничение, пхп по дефолту 30 секунд)

    Поэкпериментировал еще немного. Время отрисовки (в случаях, когда уже не рисуется) ~10 сек. Значит ограничение не по времени.
    Зато удалось выяснить следующее. ~2500 точек - это критическое значение, когда точки типа double. При использовании типа int критическое значение примерно на 200 точек больше.
    Можно сделать выводы где копать (ограничение php, artichow или gd)?
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 14:37, спустя 7 минут 29 секунд


    bRUtality, хз что это за библа такая, юзал последний (по сути и первый) раз Open Flash Charts (смесь флеша и пыхи). Для моей задачи вполне достаточно + сервер не грузит..

    Офф сайт у них лежит artichow.org. Мануал видел только на французском.
    Вобчем-то простая для использования библа, рисует красиво. Хотелось бы с ней разобраться. Вариант с другими модулями рассматриваю как крайний, т.к. проект большой, перелопачивать много придется:(
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 11 апреля 2011 г. 17:56, спустя 3 часа 18 минут 43 секунды


    bRUtality, хз что это за библа такая, юзал последний (по сути и первый) раз Open Flash Charts (смесь флеша и пыхи). Для моей задачи вполне достаточно + сервер не грузит..

    +1 тоже юзаю её всегда
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 11 апреля 2011 г. 18:41, спустя 45 минут 7 секунд

    bRUtality, так если большой проект + графики такие объемные будут частенько рисоватся. то нахуя оно нужно рисовать все сервером, пусть тачка юзера рисует ему график (то есть мой вариант лучше юзать), а то у вас того и гляди серверов не хватит.
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 10:08, спустя 15 часов 26 минут 38 секунд


    bRUtality, так если большой проект + графики такие объемные будут частенько рисоватся. то нахуя оно нужно рисовать все сервером, пусть тачка юзера рисует ему график (то есть мой вариант лучше юзать), а то у вас того и гляди серверов не хватит.

    Где быстрее будет рисоваться, на сервере или на клиенте, лично для меня вопрос, т.к.:
    - сервер с апачем и пхп на фряхе, железо кульное, работает реально быстро
    - у половины потенциальных юзеров старенькое железо, ОС WinXP или Win7
    - рисуя на сервере, передаем по сети картинку png размером 30-50 kb; для отрисовки на клиенте нужно передать массивы по 1000-5000 точек
    Учитывая это, можно ли сказать, что клиент отрисует достаточно быстро, чтобы в меня не летели тухлые помидоры?
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 11:11, спустя 1 час 3 минуты 20 секунд



    bRUtality, так если большой проект + графики такие объемные будут частенько рисоватся. то нахуя оно нужно рисовать все сервером, пусть тачка юзера рисует ему график (то есть мой вариант лучше юзать), а то у вас того и гляди серверов не хватит.

    Где быстрее будет рисоваться, на сервере или на клиенте, лично для меня вопрос, т.к.:
    - сервер с апачем и пхп на фряхе, железо кульное, работает реально быстро
    - у половины потенциальных юзеров старенькое железо, ОС WinXP или Win7
    - рисуя на сервере, передаем по сети картинку png размером 30-50 kb; для отрисовки на клиенте нужно передать массивы по 1000-5000 точек
    Учитывая это, можно ли сказать, что клиент отрисует достаточно быстро, чтобы в меня не летели тухлые помидоры?

    ну на сервере для каждого же пользователя будет рисоваться ;) Так что железо хоть какое там пусть стоит, нагрузка будет неебической.
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 11:15, спустя 4 минуты 5 секунд

    Ок, спасибо.
    Тогда еще такой вопрос остался: можно ли с помощью Open Flash Charts сохранить картинку (желательно на сервере)?
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 11:16, спустя 1 минуту 14 секунд


    Ок, спасибо.
    Тогда еще такой вопрос остался: можно ли с помощью Open Flash Charts сохранить картинку (желательно на сервере)?
    думаю, да. А так почитайте ман.
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 12:03, спустя 47 минут



    Ок, спасибо.
    Тогда еще такой вопрос остался: можно ли с помощью Open Flash Charts сохранить картинку (желательно на сервере)?
    думаю, да. А так почитайте ман.

    Гугл про это ничего не знает:(

    Вопрос к Givi: у Open Flash Charts есть свои средства сохранения картинки в файл?
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 12:57, спустя 53 минуты 26 секунд

    Гугл про это ничего не знает:(


    А так почитайте ман.

    Спустя 22 сек.
    спрашивается, причем тут гугл? :)
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 13:40, спустя 43 минуты 31 секунду

    30-50 kb; для отрисовки на клиенте нужно передать массивы по 1000-5000 точек

    ты уверен, что 1000-5000 точек, займет больше, чем 30-50kb, это точно проверял?
  • bRUtality

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 14:26, спустя 45 минут 58 секунд


    Гугл про это ничего не знает:(


    А так почитайте ман.

    Спустя 22 сек.
    спрашивается, причем тут гугл? :)

    ман - это умолчанию (кстати там ничего нет)
    Гугл обычно знает больше;) и он говорит, что нужны стороние модули, чтобы дернуть jpg c флеш
    Спустя 173 сек.

    30-50 kb; для отрисовки на клиенте нужно передать массивы по 1000-5000 точек

    ты уверен, что 1000-5000 точек, займет больше, чем 30-50kb, это точно проверял?

    Не уверен. Хотел провести эксперимент, но решил что считать скорость нет смысла, т.к. веб-сервис работает по интрасети конторы, а не по интернету.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!