-Поиск по дневнику

Поиск сообщений в InternetVoice

 -Подписка по e-mail

 

 -Интересы

php. web сервисы и т.д. интернет магазины. seo мео программирование

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 26.03.2009
Записей:
Комментариев:
Написано: 55

Выбрана рубрика Доски.


Другие рубрики в этом дневнике: Программы(2), Программирование PHP, MySQL(7), Интернет магазины(1), SEO Блог(4), HTML, CSS, JS, Верстка(2), Game Maker, Игры(2)
Комментарии (4)

Создать доску объявлений Бесплатно

Дневник

Четверг, 19 Ноября 2009 г. 17:10 + в цитатник
Создать доску объявлений Бесплатно Можно на сервисе http://vse.doski.ws.

Пишите коменты, что не так, что хАтите
Рубрики:  Доски

Метки:  
Комментарии (0)

Скорость считывания из файлов

Дневник

Воскресенье, 05 Апреля 2009 г. 20:22 + в цитатник
Недавно пришлось оптимизировать доску объявлений, с разделами, и подразделами. Что из это получилось, можно посмотреть тут http://vse.doski.ws/.

Обычное трехуровневое дерево, которое хранится в файле наподобие CSV.
Разделителем полей является |, разделителем строк #13#10..

Что мне не понравилось - чтобы найти категорию по "ID" и/или "Значению", нужно пройДтись по всем строкам,
каждой сделать explode ('|',$row), и сравнить искомый элемент (ID и/или "Значение") с результатом explode.

Не долго думая, я перевел все все дерево в трехуровневый массив,
и сохранил в другой файл, предварительно сделав serialize.

Трехуровневый массив позволял делать поиск и проверку элементов дерева
по индексу isset($tree[$ID]) ,и по значению - in_array(...).
Чтобы загрузить весь массив нужна одна строка кода

$tree = unserialize(implode('',file('tree_new.dat')));

Никаких while, foreach, for, c переборам по строкам, при таком методе не нужно.

Конечно, serialize/unserialize достаточно тяжелые функции, но они выполняются всего 1 раз,
в отличии от explode для каждой строки.

Чтобы разобраться, я написал тестер.
У меня было 350 категорий, и занимал обычный файл 8,2 КБ, после serialize - 24.1КБ

и получаю вот такие результаты :

Делаю 5 итераций по 8 раз.
Тестирование file(), explode().
cid = 9110, cidname=Услуги Разные, ncid=, katname=Фото, видео, аудио; Средний рез. 0.0101898193359
Тестирование unserialize, serialize.
cid = 9110, cidname=Услуги Разные, ncid=, katname=Фото, видео, аудио; Средний рез. 0.0376589775085

метод с serialize медленней, оказывается медленней в 3 раза!!!

Вопрос почему?

Думаю что не смотря на все свои обороты, кеши, и т.д, жесткий диск - самое медленное устройство.
Т.к. при serialize, размер файла возрастает в ~3 раза, то и скорость загрузки тоже.
Что прямолинейно отражает тест.

Выводы.
Старайтесь как можно больше убирать избыточность данных, в файлах, и базах mysql.
Большее внимание уделять структуре хранения данных на этапе проектирования приложения.
Рубрики:  Программирование PHP, MySQL
Доски

Метки:  
Комментарии (2)

Список досок объявлений, что я сделал

Дневник

Пятница, 27 Марта 2009 г. 00:15 + в цитатник
Мои 10 досок объявлений -

Доска объявлений Пскова - http://pskov.vndv.com/index.php
Доска объявлений Липецка - http://lipetsk.awardspace.biz/index.php
Доска объявлений КАМаЗы, грузовики - http://kamaz.100webspace.net/index.php
Доска объявлений Брянска - http://bryansk.freehostia.com/index.php
Доска объявлений Минска - http://minsk.farvista.net/index.php
Доска объявлений промышленность, станки, оборудование - http://promyishlennost.100webspace.net/index.php
Доска объявлений аренда,недвижимость, дома, дачи http://nedvizhimost.h18.ru/index.php
Доска объявлений машины, авто, автозапчасти, автосервисы - http://mashiny.hmarka.net/index.php
Доска объявлений Стерлитамака - http://sterlitamak.freehostia.com/index.php
Доска объявлений Екатеринбурга - http://ekaterinburg.cogia.net/index.php

Буду очень рад видеть вас, на одной из этих досок объявлений.
На досках система спам кнтроля,и экспорт объявлений в RSS.
Вот Списочек. Может кому пригодится.
Продолжение следует
Рубрики:  Доски

Метки:  

 Страницы: [1]