LINUX.ORG.RU

Сообщения victor79

 

Какие есть средства ускорить рандомную запись в один конкретный файл?

Форум — Development

Есть один здоровый файл, несколько гигов, в который пишу и читаю 50/50 по 50 байт за раз в рандомном порядке. По замерам через rdtsc чтение происходит за порядка 5тыс тактов, а запись за порядка 100тыс тактов. Какие есть средства ускорения процесса записи? Включая переформатирования или покупку железа, если это не дорого обойдется? Сейчас это на обычном HDD на Ext4 под убунтой.

 ,

victor79
()

QThread: зачем нужен moveToThread?

Форум — Development

Потребовалось мне сделать выполнение в отдельном потоке, и начал разбирать что к чему. Может ли мне кто объяснить, зачем нужен moveToThread? Что за родственность (affinity) меняется при его выполнении? Ведь если нить создается в текущем процессе, то память у нее общая и доступная в текущим процессе. Или без этого метод объекта, который туда не перемещен не будет выполняться в той нити? И одновременный доступ к свойствам все равно нужно контролировать через мютексы. На что влияет это перемещение?

QThread* th = new QThread;
MyObject* obj = new MyObject;
obj->moveToThread(th);
obj->doSomeThing();

такая вещь по прежнему может выполняться в текущей нити, несмотря на то что я сказал объекту переместиться в другую нить.

 ,

victor79
()

Как правильно работать с lmdb?

Форум — Development

Разбираю lmdb.

Если выполняю mdb_txn_commit после каждого mdb_put, то получаю жутко медленную скорость, всего десятки записей в секунду.

А если не закрывать, то в какой то момент получаю сообщение об ошибке «MDB_MAP_FULL: Environment mapsize limit reached», каждый раз на разном кол-ве произведенных записей.

Делаю примерно как описано в примере: https://github.com/rvagg/lmdb/blob/master/deps/liblmdb-20130601/sample-mdb.c

Как правильно производить запись в эту базу?

 ,

victor79
()

Много-много insert в SQLite в QSqlDatabase, как еще можно ускорить?

Форум — Development

Есть программка, которая делает сотни миллионов insert в SQLite в QSqlQuery через prepare. Transaction есть, закрываю на каждые несколько сотен тысяч вставок. Вопрос, какие варианты есть это ускорить без выключения механизмов надежности базы? Там пара не сложных таблиц, и запросы insert идут вперемешку с другими запросами. Ускорит ли если я переделаю, что insert в одну таблицу будут идти последовательно пачками, или это не играет роли? Или если переделаю на непосредственный sqlite3_exe с callback? Есть пара запросов update, ускорит ли их, если обновлять буду пачками в последовательности возрастания primary key, или не влияет?

Используются PRAGMA TEMP_STOR=MEMORY и PRAGMA JOURNAL_MODE=PERSIST.

Наблюдается неприятная штука, что вставка пока таблицы меньше 100тыс записей идет раз в двадцать быстрее чем когда они уже за пару миллионов записей. Может здесь есть какая-нибудь переиндексация?

 , ,

victor79
()

Как в Qt Creator сделать, что бы после компиляции из IDE запускался скрипт?

Форум — Development

Как в Qt Creator сделать, что бы после успешной компиляции запускался скрипт? Хочу прописать туда git commit -a -m 'compile'. Или есть ли другие решения, что бы после каждой компиляции создавался коммит?

 ,

victor79
()

Чем рисуют схемы на сайте SQLite?

Форум — General

На сайте SQLite куча нарисованных схем. Вопросик, для такого вида схем есть специальный редактор? или это в графическом редакторе делали?

 

victor79
()

git или не git, или вообще как сделать такое ведение проекта?

Форум — Development

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

Есть проект, на Qt, у него есть стабильная версия. Я хочу от этой версии скажем сделать копию, в этой копии делать изменение функционала, и заливать обратно, просматривая при этом что изменял. При этом, пока производятся основные изменения в продублированной копии, я от исходной копии хочу сделать еще копию, сделать в ней какие-то мелкие быстрые изменения, и внести эти изменения и в основную версию, и в дорабатываемую.

Вот в git, который приделан к Qt Creator я не вижу кнопки, которая быстро могла бы сделать копию проекта в другой каталог, что бы при желании я мог запускать и основную версию, и изменяемую.

 ,

victor79
()

конвертация JavaScript array -> QList, есть ли автоматическое преобразование?

Форум — General

У QWebEngineView есть QWebEnginePage.

У QWebEnginePage есть метод runJavaScript.

Как из этого скрипта вернуть массив «document.links» в Qt?

Если так и написать «document.links», то возвращается пустой QVariantMap. Если же эти линки предварительно сцеплю в одну строку, то эта строка нормально возвращается в виде строки. Как без заморочек вернуть array в Qt как список?

По интернету полно примеров но обратной конвертации, из QVariantList в JavaScript array. А мне нужно наоборот.

 ,

victor79
()

Как загружать и парсить веб-страницы на C++/Qt?

Форум — General

Не в том смысле, как работать с QNetworkAccessManager, а как правильно получить контент сайта. Запросил я сайт, а QNetworkAccessManager возвращает либо «Moved permanently», либо «требуется javascript и cookies для просмотра сайта», а в браузере эти сайты отображаются нормально. Какие по этому вопросу есть варианты решений что бы не заморочно получить контент, примерно в том виде, как его видно в браузере при просмотре исходного кода страницы?

 , ,

victor79
()

rsync из MSYS2 не хочет понимать кириллицу в source. Как исправить?

Форум — General

При использовании rsync из MSYS2 в среде windows 7, при указании кириллического пути в source выдается сообщение об ошибке:

rsync: change_dir "/test/rsync//"/cygdrive/c/1_тест" failed: No such file or directory (2)

Если без кириллицы в исходных путях, то все работает. Кириллица в названиях файлов и путей уже внутри исходной папки обрабатывается нормально. Как это исправить, или в какой кодировке ему подсунуть source? Я пробовал и 1251 и 866 и utf-8. Запускаю как клиент, который подключается к демону на виндовом сервере той же версии rsync, но как я понимаю, ошибка чисто клиентской стороны.

 ,

victor79
()

простой soap-клиент

Форум — General

Есть надобность использовать механизм soap между с++ программой и 1С. Есть ли какая простая либа для подключения, без парсинга возвращенного xml? Скачал gsoap, он там так много генеририует, я бы этот xml сам бы распарсил.

 

victor79
()

В какой программе удобно рисовать график-поверхность?

Форум — General

В какой программе удобно нарисовать поверхность из данных из таблицы в которой последовательно идут строки x,y->z? Смотрел описания по Excel, там нужно не последовательную таблицу, а матрицу. А у меня это лог из программы - последовательность строк.

 

victor79
()

C++: а можно ли как-либо лябду указать в параметре шаблонного класса? Да еще и typedef'ом сделать?

Форум — Development

Можно ли как-либо лямбда-функцию указать в параметр шаблонного класса? Поясню, что меня интересует именно в параметр шаблона, а не указать в шаблоне тип, а в параметр метода указывать саму функцию.

Я попробовал сделать, но компилятор ругается: ошибка: lambda-expression in template-argument

template <typename I, typename T, std::function<I(const T&)>* fn >
struct TTest {
    static I index(const T& s) { return fn(s); }
};

struct TTust {
    quint32 value = 5;
};

void test() {
    TTust ss;
    qDebug() << TTest<quint32,TTust,[](const TTust& s) { return s.value; }>::index(ss);
}

 , ,

victor79
()

Может кто разъяснить как законнектить два компа через SocialVPN?

Форум — General

В строй версии 0.6, где управлять можно было через http://127.0.0.1:58888 там было просто, копируешь uid и готово. Правда эта старая версия у меня почему то не стала запускаться в online. Сейчас есть новая версия, v16.01.1. Под убунту поставилась сравнительно просто, хотя описание в самом дистрибутиве кривое, и нужно смотреть на сайте. Под виндой то же поставилась, хотя и с плясками. Но никак не соображу как теперь сделать, что бы эти два компа увидели друг друга.

 

victor79
()

почему мой шаблон в шаблоне вызванный из шаблона не хочет компилиться?

Форум — Development
template <typename T>
struct TestClass {
    template <typename R>
    R do_somethign(T v) const { return v; }
};

template <typename S, typename R>
R call_test_class(const TestClass<S>& v) {
    return v.do_somethign<R>(5); // << здесь он ругается
}

void use_my_test_class() {
    TestClass<int> c1;
    call_test_class<int,int>(c1);
}

выдает ошибку:

expected primary-expression before '>' token
     return v.do_somethign<R>(5);
                            ^

компилирую на QtCreator.

 

victor79
()

Qt Creator: какую прописать конструкцию, что бы мой класс в отладчике показывал нужную мне информацию?

Форум — Development

Вот сижу пишу программку в среде QtCreator. Написал свой утилитный класс. И можно ли что бы в процессе отладки в просмотре переменных он мне показывал нужную мне инфу, а не указатель на класс? Как у других классов встроенных в Qt.

 

victor79
()

Qt Creator & Git: нажал Создать хранилище, а остальные пункты по прежнему не доступны, почему?

Форум — Development

В системе git установлен. Он присутствует в путях.

В Qt Creator в существующем проекте нажимаю «Создать хранилище», он пишет что выполнена «git init» и никаких ошибок не наблюдается. В указанный каталог добавляется каталог ".git".

И снова нажимаю «Инструменты\Git» и все остальные пункты по прежнему недоступны и активна лишь «Создать хранилище». Чего ему не хватает?

все это на Ubuntu 15.10

 ,

victor79
()

Как нужно оформить LICENSE на github? И какой это у меня тип лицензии?

Форум — General

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

И еще, что если эта модификация куда-либо выкладывается, то обязательно должно быть мне сообщено. Это для целей что бы я мог посмотреть какие там изменения, и если они интересны, то внести их в свой проект, конечно же не забыв указать, кто сделал ту модификацию.

Это какой тип лицензии? И текст этой лицензии нужно весь скопировать в LICENSE или можно как то кратко упомянуть тип лицензии, и приписать модификации в ней? Обязательно она должна быть на английском?

 

victor79
()

Как в Eclipse C++ указать каталог компиляции?

Форум — Desktop

Как в Eclipse C++ указать каталог компиляции? Что бы туда он складывал весь вывод. Хотя exe можно и в отдельный каталог.

 

victor79
()

Как заставить отладчик пройтись по инициализациям до main()?

Форум — Development

Есть большой-большой проект, и в нем куча инициализируемых до main переменных. Как перебрать код их инициализаций (конструкторы, или другое что есть) в отладчике - отладчик сразу выходит на main. Пробовал в IDE Eclipse. Или хотя бы в gdb - но там он останавливается только на брекпоинтах, непонятно какой командой запустить: run - сразу идет до брекпоинта, который непонятно куда ставить.

 ,

victor79
()

RSS подписка на новые темы