LINUX.ORG.RU

Сообщения victor79

 

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

 ,

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

victor79
()

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

 ,

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

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

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

victor79
()

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

 ,

Разбираю 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, как еще можно ускорить?

 , ,

Есть программка, которая делает сотни миллионов 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 запускался скрипт?

 ,

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

victor79
()

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

 

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

victor79
()

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

 ,

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

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

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

victor79
()

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

 ,

У QWebEngineView есть QWebEnginePage.

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

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

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

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

victor79
()

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

 , ,

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

victor79
()

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

 ,

При использовании 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-клиент

 

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

victor79
()

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

 

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

victor79
()

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

 , ,

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

Я попробовал сделать, но компилятор ругается: ошибка: 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?

 

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

victor79
()

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

 

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: какую прописать конструкцию, что бы мой класс в отладчике показывал нужную мне информацию?

 

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

victor79
()

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

 ,

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

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

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

все это на Ubuntu 15.10

victor79
()

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

 

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

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

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

victor79
()

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

 

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

victor79
()

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

 ,

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

victor79
()

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