Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 51 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 41,31%
Фрагменты текста поста : ... Файлы vs базы данных... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... Давайте рассмотрим процессы, проистекающие на сервере при работе КМС "на файлах" и сравним их с аналогичными процессами при использовании СУБД... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Вся эта информация сохраняется в файл и позже, на ее основе, генерируются графики посещаемости по дням, «хит-парад» страниц сайта, сайтов-источников трафика и используемых для просмотра броузеров и прочая мега-полезная отчетность... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... Кстати, анализируя этот файл можно увидеть, какие страницы сайта проиндексированы какими поисковыми системами (были посещены поисковыми ботами) и когда это произошло... ... Но в таком случае, почему об этом нигде не сказано... ... db — а вот на этот файл стоит обратить особое внимание... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... Скрипт считывает в память ВЕСЬ файл статистики, не взирая на размер ( если посещаемость высокая или статистика собирается за большой срок, то это могут быть десятки или даже сотни мегабайт )... ... Итак, скрипт загружает текстовый файл и преобразует его в массив... ... Если же такой ячейки нет, то ее необходимо создать и поместить в нее единицу... ... Серилизация (склейка элементов массива в строку) и перезапись (опять же) ВСЕГО файла статистики... ... Главное то, что ПРИ ЛЮБОМ ХИТЕ (даже переходе серфера с одной страницы сайта на другую) происходят ВСЕ описанные операции — чтение, разбор, поиск, склейка, запись и выполняются они над ВСЕМ содержимым файла статистики... ... За счет кэширования вы выиграете часть времени на чтении/сохранении файла статистики, но как быть с массивом... ... К тому же не стоит забывать, что пока одна копия запущенного скрипта копается в вашем (пусть и прокэшированном) файле, все другие будут тихо и мирно курить в сторонке... ... Другими словами, пока идет обработка одного посетителя, все остальные будут ждать ибо для них доступ к файлу статистики окажется заблокированным... ... При нормальном (читай « грамотном ») подходе тут будут использованы аж три таблицы: в первой будут храниться хосты поисковиков (по одному на запись), во второй — запросы с хостов (каждый запрос в отдельной записи), ну и в третьей — собственно количество посетителей по дням для каждой из искалок по каждому из запросов... ... Индексный файл содержит копию проиндексированного поля (или полей) из таблицы БД, но в отсортированном виде... ... Таким образом, одной операцией сравнения мы сразу определяем в какой из половин таблицы находится нужная нам запись, т... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... для перехода к нужной записи достаточно просто размер заголовка файла добавить к произведению размера записи в байтах на номер записи и получаем точное смещение от начала файла... ... Запись считали, увеличили на единицу и снова записали НА ТОЖЕ МЕСТО в файле таблицы... ... Поскольку записи в нашей третьей таблице (в данном случае) также будут иметь фиксированную длину, то поиск нужной внутри файла также сведется к одному сложению и одному умножению, а уж прочесть и снова записать на тоже место 12 байт — милисекундное дело (даже с учетом автоматической коррекции индексного файла)... ... Да еще про кэширование вспомним :-) Кстати, если ваш сайт достаточно посещаем, то файл статистики будет расти как на дрожжах и каждое обращение к скрипту будет вызывать чтение/парсинг/поиск/сохранение всех этих десятков мегабайт, а при использовании БД при любом количестве посетителей нам все так же будет нужно читать всего несколько сотен байт (три записи из таблиц), а записать - только 12 байт... ... А итог таков, что пусть мы и поимеем потери на чтении/сохранении индексных файлов все равно получаем примерно тысячекратный прирост в скорости в сравнении с файловым движком... Подробнее: http://fit-media.com/post_1222679684.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 23,15%
Фрагменты текста поста : ... Вот такой странное и неожиданное происшествие сегодня случилось... ... Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные... ... Поэтому такой вариант наименее предпочтительный... ... Самый простой способ создания резервной копии — тупо откопировать важные файлы (и папки) в место резервного хранения... ... Достичь этого можно обычной командой copy... ... Например команда: copy /Y c:\texts\*... ... * f:\arhiv\ скопирует все файлы из папки texts диска C: на диск F: в папку arhiv... ... Главный недостаток этой команды — она не умеет копировать папки... ... Но это легко исправить, достаточно воспользоваться программой xcopy , которая входит в состав Windows... ... Команда в этом случае будет выглядеть так: xcopy c:\texts\*... ... * f:\arhiv\ /Y /S Теперь она скопирует все содержимое папки texts диска C: , включая все вложенные папки и все файлы из них... ... В реальной жизни чаще нужно копировать не все подряд, а файлы определенных типов... ... В этом случае можно воспользоваться такими командами: xcopy c:\texts\*... ... doc f:\arhiv\ /Y /S скопирует все документы Microsoft Word xcopy c:\texts\*... ... Дело в том, что эти команды просто тупо копируют файлы из одного места в другое... ... При этом если в папке-приемнике уже есть файл с тем же именем, что и в папке-источнике, то он заменяется... ... Проблема в другом — если в исходной папке какой-либо файл был удален (например он больше вам не нужен), то в копии он все равно останется... ... * /S /F /Q Она уничтожит все файлы из папки архива и всех вложенных в нее папок... ... Запустите блокнот, наберите в нем такой текст: Пример BAT-файла del f:\arhiv\*... ... * /S /F /Q xcopy c:\texts\*... ... Обратите внимание на расширение этого файла, оно должно быть именно BAT , а не TXT... ... Достаточно одного файла чтобы создать сколько угодно копий... ... * /S /F /Q xcopy c:\texts\*... ... * f:\arhiv\texts\ /Y /S xcopy c:\prikaz\*... ... * f:\arhiv\prikaz\ /Y /S xcopy d:\doc\*... ... * f:\arhiv\doc\ /Y /S Этот файл создаст полные копии папок texts и prikaz диска C: и папки doc диска D:... ... копируются абсолютно все файлы, хотя делать это каждый раз вовсе не обязательно... ... Хорошо бы, добиться такого эффекта, когда: в копии заменяются только те файлы, которые изменились в оригинале в копию добавляются те файлы, которые появились в папке оригинала из копии удаляются все папки и файлы, которые удалились в оригинале... ... Таким образом количество операций копирования свелось бы к минимуму и мы смогли бы максимально ускорить такой скучный процесс... ... требуется время на сжатие информации Чтобы не забивать вам и без того перегруженный информацией мозг описанием всех возможных команд и режимов я просто дам готовые команды, которые (немного измененные) вы можете начать использовать хоть прямо сейчас... ... rar d:\work\prikaz В результате его работы в папке arhiv диска F: будут созданы три файла: texts... ... архиватору придется полностью упаковать все файлы из исходных папок... Подробнее: http://fit-media.com/post_1203529769.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 14,61%
Фрагменты текста поста : ... (команды пользователя) без такой привычной и такой всем давно надоевшей полной перезагрузки... ... Если у вас есть трудности с javascript, смело вставляйте в свои страницы команду загрузки jQuery и забудьте о своих проблемах... ... Поскольку вся библиотекуа представляет собой всего один обычный файл с java-скриптом, то и подключается он стандартным HTML-тэгом: Пример кода <... ... Для примера вставим внутрь своей страницы такой код: Пример кода <... ... Поэтому сделаем файл, который будет посылать некий ответ на наш запрос... ... Для этого создадим HTML-файл, например, такого банального содержания: Содержимое файла text... ... после выполнения функции mytest() внутри контейнера будет помещено содержимое нашего файла (в данном примере это будет надпись "... ... /a> Итак, полный код примера: Полный код файла index... ... /html> Сохраните файлы index... ... Файл будет зваться name... ... Код: Файл name... ... ) в переменной n и получать в ответ фразу 'Hello &hellip... ... } Первой командой мы считываем значение атрибута value из нашего поля ввода и сохраняем его в переменной nnn, а второй командой вызываем наш серверный скрипт с передачей ему считанного имени и занесением ответа в наш контейнер... ... Можно, конечно, запихнуть их в скрытый контейнер и потом пропарсить, но такой подход никак нельзя назвать элегантным решением... ... вы не сможете с его помощью закачать на сервер файлы... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... Код скрипта (файл file... ... php): Файл file... Подробнее: http://fit-media.com/post_1262093659.htmlDropBox - убийца фалообменников
Степень соответствия запросу: 9,04%
Фрагменты текста поста : ... Это значит, что стоит вам удалить какой-то файл из этой папки, как он тут же будет удален с сервера... ... для удаления файла с сервера достаточно просто удалить этот файл из своей папки... ... , а так же валяется непонятный RTF файл, который можете сразу же стереть &mdash... ... Поэтому если вы хотите, чтобы кто-то кроме вас мог скачать файлы из вашего аккаунта, то вы должны разместить эти файлы внутри одной из этих папок... ... Все остальные папки и файлы, которые вы можете создать и которые НЕ будут находиться внутри папок Public или Photos никогда не будут доступны другим пользователям (за одним маленьким исключением, которое называется "... ... и сотрите все, что в ней есть (файл RTF с описанием работы и пример готового альбома)... ... и скопируйте в нее несколько фотографий: Если файлы большие или ваше соединение с интернет не очень быстрое, то вы заметите, что у каждой иконки сперва появляется синий значек с двумя стрелочками, который потом заменяется на зеленый с галочкой... ... файл или папка еще закачивается на сервер, зеленый  ... ... файл или папка успешно закачаны... ... в том, что в ней нельзя расшарить (сделать публично-доступным) один какой-то файл, только целиком альбом (вложенную папку)... ... Если же вам нужно раздавать файлы по одному, то вам нужно воспользоваться папкой "... ... в ней можно получить паблик-ссылку на любой вложенный файл, но нельзя получить такую ссылку на папку... ... раздавать файлы можно только по одному... ... Так что смело копируйте нужные файлы в папку Public , получайте на них паблик-ссылки и заваливайте этим спамом все известные вам форумы... ... Еще раз напомню, что если вы удалите как-нить файлы из ваших папок Public или Photos (или любых других внутри папки My Dropbox ), то эти файлы тут же будут удалены с сервера... ... если какой-любо из закачанных файлов изменился, то перезалита будет только изменившаяся часть, а не весь файл... Подробнее: http://fit-media.com/post_1256945370.htmlПривратник-младший. Турбо-решение.
Степень соответствия запросу: 3,76%
Фрагменты текста поста : ... Но если вам важен каждый процент нагрузки сервера и плевать вы хотели на случайных серферов, пользующихся неправильными броузерами, то замените в файле pr... ... Чуть ниже в файле идет список стоп-слов, найдя которые в юзер-агенте скрипт безаговорочно выплюнет 404... ... Сохраняйте изменения и закачивайте его на сервер в папку с блогом (это папка, в которой расположены файлы functions... ... Теперь, чтобы подключить скрипт к блогу, необходимо внести изменения в файл... ... Настоятельно рекомендую скопировать куда-нибудь этот файл до того, как вы начнете его редакторовать... ... вам достаточно будет вернуть родной файл... ... Итак, вот содержимое файла... ... htaccess, который поставляется Вадимом в комплекте Lasto-Blog-B: Исходный файл... ... php А вот то, что должно быть после изменения: Модифицированный файл... ... php После изменений сохраните файл... Подробнее: http://fit-media.com/post_1225008537.htmlОптимизируем мышиную возню
Степень соответствия запросу: 2,33%
Фрагменты текста поста : ... Как уже было сказано в предыдущих постах, чем большим количеством устройств ввода приходится пользоваться юзеру для работы с программой, тем менее удобен такой интерфейс... ... Поэтому разработчик еще на этапе проектирования должен четко определить, какое устройство в его программе будет приоритетным... ... Вот некоторые мысли, которые помогут значительно улучшить интерфейс ориентированный на использование мыши: На панелях окон желательно разместить максимальное количество кнопок различных действий Естественно, в первую очередь это должны быть кнопки наиболее часто употребляемых команд... ... В подсказках обязательно должны указываться горячие клавиши команды (если такие есть)... ... Меню должны иметь как можно меньше вложенных подменю Лучше сделать больше пунктов главного меню с одной выпадающей менюшкой в каждом пункте,чем все команды загнать в одно меню с кучей вложенных подменю... ... Это существенно расширяет количество выполняемых с помощью мыши команд... ... Для вышеописанного выше "китайского кода" может быть такое, например, объяснение: левой кнопкой хватаем и тащим объекты по экрану... ... Например, в проводнике (Microsoft Windows Explorer) перетаскивание файла левой кнопкой вызовет действие по умолчанию (перемещение или копирование, в зависимости от того что и куда тащите), а перетаскивание того же файла правой кнопкой позволит самостоятельно выбрать действие: копировать, переместить или создать ярлык... ... Везде где можно используйте возможности технологии "Drag-and-Drop" Пользователю гораздо удобнее схватить объект и перетащить его в корзину или в другое окно, чем отметить объект и потом лазить по пунктам меню (или по многочисленным тулбарам) в поисках команды удаления/переноса... ... Очень желательно реализовать грамотное поведение окон Окна, которые знают в какой момент им следует появиться на экране, а в какой исчезнуть - отличные помощники в работе... ... В операционной системе Microsoft Windows лично мне очень сильно не хватает такой функции... Подробнее: http://fit-media.com/post_1199978157.htmlСтатичные файлы vs скрипты. Невидимое зло.
Степень соответствия запросу: 1,77%
Фрагменты текста поста : ... Статичные файлы vs скрипты... ... Мне кажется, что такой подход - результат того, что вэб-приложения разрабатывают люди, привыкшие создавать софт для настольных систем, для которых хорош принцип "... ... Но в вэб такой подход совершенно не приемлем... ... Модная нынче тенденция хранить стили в БД оборачивается тем, что при каждом запросе клиентского приложения (броузера) серверу приходится запускать PHP-скрипт, который в свою очередь должен пропарсить запрос, определить какие именно стили требуются клиенту, затем "... ... Казалось бы нагрузка не такая уж и существенная, но все же вариант, когда стили хранятся в отдельных файлах гораздо предпочтительнее, т... ... в этом случае вэб-сервер тупо отсылает клиенту готовый файл и никаких запусков скриптов, парсингов, обращений к БД и прочей лабуды не выполняется... ... Круто, конечно, но во-первых редактирование стилей (как и скриптов, шаблонов и прочего не-контекстного барахла) в textarea не идет ни в какое сравнение даже с виндовым "... ... Но ведь при переносе сайта вам все равно придется переносить и скрипты (сам код CMS), так какая разница переносить только файлы CMS или файлы CMS плюс файлы дизайна... ... он в это время будет скачивать остальные файлы... ... Снова вэб-сервер, вместо тупой отправки готовых файлов, будет вынужден запускать PHP-скрипты, которым придется производить кучу работы (почти такой же объем вычислений, как при генерации страницы... ... ни один вменяемый дизайнер/верстальщик ни за какое бабло не станет проводить редактирование шаблонов в броузере... Подробнее: http://fit-media.com/post_1283692130.html14 принципов создания вежливых программ
Степень соответствия запросу: 1,42%
Фрагменты текста поста : ... Если я спрашиваю у служащего аэропорта, через какой выход пройти на рейс 729, я ожидаю, что он не только ответит на мой вопрос, но и даст мне важную информацию о том, что вылет рейса 729 задерживается на 20 минут... ... Я не хочу слышать ее нытье о том, что она не уверена, в какое место на диске записать файл... ... Если я прошу компьютер удалить файл, я не хочу чтобы он спрашивал у меня "Вы уверены... ... Я хочу, чтобы он имел смелость в своих убеждениях и удалил файл... ... С другой стороны, если компьютер имеет какие-то подозрения, что я могу ошибаться – что может быть всегда – он должен предусмотреть это, и подготовиться к возможному восстановлению файла, если я вдруг передумаю... ... Тогда как служащий может выписать счет не имея полной информации о клиенте, автоматизированная система не сможет выполнить такой запрос, не желая выписывать счет... ... Но к несчастью, такое идеализированное состояние дел не является точным описанием работы реального мира... ... Когда компьютеры ведут себя совершенно неуправляемо и неохотно выполняют задания пользователей, ни о каком доверии и речи быть не может... Подробнее: http://fit-media.com/post_1203349390.htmlУрок информатики для мелкософта (пояснение к залепе №8)
Степень соответствия запросу: 1,37%
Фрагменты текста поста : ... имел бы (насколько это возможно) команды, аналогичные типовым командам процессора... ... Именно исходя из этих требований, в языке С есть, например: команды инкремента/декремента (а++, а--), как аналоги соответствующих команд ЦП... ... возможность указать, что переменная должна храниться в регистре процессора, а не в памяти... ... команды выделения/освобождения памяти... ... команды поразрядных сдвигов... ... такой тип не поддерживался ни одной платформой)... ... Пришло, наконец, время объяснить, в чем же различия между полной и сокращенной записью команд и почему одно вовсе не соответствует второму... ... Значение переменной a складывается с значением переменной b и результат заносится в переменную c... ... Итак, по-пунктам: в строке (1) переменная c становится "дублем" переменной a , т... ... А происходит такое именно из-за созданной компилятором описанной выше заглушки... Подробнее: http://fit-media.com/post_1198760520.htmlОптимизация PHP-кода
Степень соответствия запросу: 1,23%
Фрагменты текста поста : ... Оптимизация PHP-кода Блуждая по просторам сети, набрел на такой интересный документ: 40 Tips for optimizing your php code Если метод может быть статическим, сделайте его статическим... ... Указывайте полные пути в командах include / require , поиск файла будет идти быстрее... ... Инкремент локальной переменной в методе - самый быстрый... ... Почти также работает инкремент локальной переменной в функции... ... Инкремент глобальной переменной в 2 раза медленее, чем локальной... ... $this->prop++ ) в 3 раза медленнее, чем локальной переменной... ... Инкремент неопределённой переменной в 9-10 раз медленнее, чем заранее инициализированной... ... Объявление глобальной переменной, без использования её в функции, также замедляет работу (примерно на ту же величину, что и инкремент локальной переменной)... ... Вероятно, PHP выполняет проверку на существование этой переменной... ... Вызов функции с одним параметром и пустым телом функции в среднем равняется 7-8 инкрементам локальной переменной ( $localvar++ )... ... Инкремент или декремент переменной при помощи $i++ происходит немного медленнее, чем ++$i... ... ++$i будет быстрее в PHP потому, что вместо четырёх команд, как в случае с $i++ , вам понадобится только три... ... В то время, как пре-инкремент увеличивает значение оригинальной переменной... Подробнее: http://fit-media.com/post_1207831883.html
