Страница 27 из 28

Re: Вопросы и ответы по программированию.

Добавлено: 09.11.2014, 21:54
MOZGIII
Pechen
А как выполняется код? Если один скрипт работает пару минут - для стандартного варианта развёртывания это не
нормально. Обычно, по-умолчанию, соединение устанавливается при старте скрипта, закрывается при его завершении.
Нужно больше конкретики.

Re: Вопросы и ответы по программированию.

Добавлено: 09.11.2014, 23:02
Pechen
MOZGIII
код выполняется пару часов, но соединение терялось всегда одинаково через определенный промежуток времени.
код выглядит примерно так
-есть класс в нем объявлена переменная, в констракте этой переменной присваивается mysqli_connect() запрос.
-в методе создается подготовленный запрос с использованием этой переменной.
-в дистракте соединение рвём

чтобы заработало как надо в методе пришлось поместись строчку из констракта(переменная = mysqli_connect() запрос) и в конце метода закрыть.

просто я так понимаю что при mysqli_stmt_init(наша переменная) должно создаваться соединение, а при mysqli_stmt_close() закрываться.

Re: Вопросы и ответы по программированию.

Добавлено: 11.11.2014, 20:38
MOZGIII
Нет, mysqli_stmt_init создаёт не соединение, а объект, который нужен для работы с prepared statements.
После открытия, соединение просто висит, и, если по нему ничего не передавать, оно умирает по таймауту. Чтобы не умирало, нужно либо делать какие-то запросы периодически (keepalive), либо можно просто перед каждым действием проверять [txtspoil]и поднимать мёртвых[/txtspoil].

Re: Вопросы и ответы по программированию.

Добавлено: 11.11.2014, 20:49
Pechen
MOZGIII
ясно, я поступил вторым способом. теперь понятно отчего рвалось в определенные моменты -- скипту подолгу нечего было класть в определенные моменты.
получается в такой записи -- mysqli_stmt_init(mysqli_connect(параметры соединения), запрос) соединение не создается, если нечего слать.

хоть делал скрипт для личного применения -- но решил все делать работу с базой по-науке через подготовленные запросы и хранимые процедуры)))

Re: Вопросы и ответы по программированию.

Добавлено: 12.11.2014, 00:28
MOZGIII
В такой - создаётся, ты ведь делаешь mysqli_connect. Причём создаётся всегда.

Лучше юзать mysqli_ping($connection) http://php.net/manual/en/mysqli.ping.php и уже если она false, то $connection = mysqli_connect(...), или просто включить автореконнект.

Re: Вопросы и ответы по программированию.

Добавлено: 30.03.2015, 08:51
wowks
Чтобы запилить апдейт для мода/игры, имея на руках старый контент и новый, достаточно ли проверять LastWriteTime через GetFileTime(...) + какая-нибудь хэш-функция или банально через fopen(...) + memcmp(...)?
Может ли быть что появятся новые файлы или исчезнут старые?
Просветите меня пожалуйста по этому поводу.

Re: Вопросы и ответы по программированию.

Добавлено: 30.03.2015, 13:37
Shlak
wowks
Если ты про Steam, то советую основываться на файлах manifest, т.к. в них указан список файлов с их хешем. Сравни старый и новый и получишь списки добавленных / удалённых / изменённых.

Re: Вопросы и ответы по программированию.

Добавлено: 30.03.2015, 15:20
wowks
Shlak
есть инфа по структуре этих файлов?

Re: Вопросы и ответы по программированию.

Добавлено: 30.03.2015, 15:34
Shlak
wowks
Вроде тут: http://cs.rin.ru/forum/viewtopic.php?p=767964#p767964
Также возможно что-то сможешь найти здесь: https://github.com/SteamRE/SteamKit/blo ... anifest.cs

Re: Вопросы и ответы по программированию.

Добавлено: 30.03.2015, 21:14
wowks
Shlak
нее. парсить этот файл тот ещё гемор...
например я так и не понял почему в структуре https://wiki.singul4rity.com/steam:file ... stmetadata
для файла 290931_6081130365130119332.manifest (Half-Life 2 Update) filenames_encrypted = true, а в 405_3790265569705112952.manifest (Portal) = false;
или что это за 4 байта перед filename в https://wiki.singul4rity.com/steam:file ... estpayload
...если только я как обычно не накосячил

думаю всё-таки проще оставить загадочный .manifest файл :) и напрямую сравнивать файлы и брать для апдейта либо их целиком либо куски которые отличаются

Re: Вопросы и ответы по программированию.

Добавлено: 31.03.2015, 08:44
MOZGIII
wowks
Полагаться на время изменения файлов ненадёжно. У людей с фс иногда такое бывает...
А вообще rsync.

Re: Вопросы и ответы по программированию.

Добавлено: 31.03.2015, 11:37
Shlak
wowks
Ну если лень заморачиваться с манифестами то можешь попробовать мою версию работающую на сравнении папок:
Скрытый текст. Нужно быть зарегистрированным и иметь сообщений: 100
Из багов помню только неправильную передачу даты при компиляции в Inno Setup.

Re: Вопросы и ответы по программированию.

Добавлено: 31.05.2015, 01:54
wowks
такой вопрос:
есть например стандартная функция strlen в стандартной библиотеке
чаще всего в исходном коде стандартных библиотек она такая:

Код: Выделить всё

size_t strlen(const char *str)
{
    const char *s;
    for (s = str; *s; ++s);
    return (s - str);
}
но если я напишу свою точно такую-же например с названием __strlen и сравню скорость работы обеих для одинаковой строки, то strlen будет в разы быстрее __strlen.

почему так?

Re: Вопросы и ответы по программированию.

Добавлено: 06.06.2015, 12:20
Yoti
Подскажите запросик для получения медианы цен? Нужно получить что-то в духе "дни-часы-количество карточек-ценник".

Re: Вопросы и ответы по программированию.

Добавлено: 09.06.2015, 08:47
$t@t!c_V()1D
wowks
Нюансы оптимизации. Плюс бывает так, что от встроенного strlen есть только заголовок, а сама функция вынесена в runtime-библиотеки, ибо часто используется.