Задать вопрос
  • Как подключить файл во время работы программы?

    @res2001
    Для ответа на вопрос его явно надо развернуть, дав ответы на следующие вопросы:
    1. Что такое "подключить файл"?
    2. Какой файл вы собираетесь "подключать"?
    3. Для чего вы собираетесь "подключать" файл?
    В таком виде вопрос звучит очень абстрактно и можно притянуть несколько мало связанных тем, отвечая на него.
    Написано
  • Почему время выполнения программы так сильно различается?

    @res2001
    pfg21, tmpfs - файловая система в памяти.
    Она за одно снимет и ограничения накладываемые дисками, а это не совсем то что нужно.
    Разве что посмотреть на максимально возможную производительность.
    Написано
  • Почему время выполнения программы так сильно различается?

    @res2001
    Вы же работаете с файлами. Даже при наличии SSD - чтение файлов будет узким местом в программе.
    Кроме того сама ОСь и фоновые процессы могут чем-то занимать SSD. Так же ранее прочитанный файл уже может быть в кэше ОС или SSD и тогда он прочитается быстрее в следующий раз.

    По хорошему для экспериментов максимально разгрузить диск. Если есть возможность - выделить отдельный физический диск для этих экспериментов .

    Я бы для начала сравнил производительность в однопоточной версии и в многопоточной на одном наборе файлов.
    Если многопоток не дает увеличения производительности, то возможно что-то работает не так как задумывалось (async не всегда может запускать дополнительные потоки, блокировки/взаимоблокировки потоков и т.п.).
    Если все же многопоток дает существеный прирост скорости, то стоит протестировать разное количество потоков и выбрать оптимальное количество, когда последующее увеличение количества потоков не дает увеличения производительности.

    Это точно не вина std::unordered_map и std::unordered_set - как бы ни были они написаны, их производительность на одних и тех же данных будет примерно одинаковой.
    Написано
  • Как называется сканер зависимостей?

    @res2001
    Dependency Walker есть для win64.
    Правда не обновляется уже давно, похоже автор забил на развитие проекта.
    Но работает вполне исправно на 11 винде.

    В составе MSVS есть утилита ком.строки dumpbin.
    В mingw есть objdump.
    dumpbin и objdump умеют показывать много чего, так что надо поразбираться c опциями, чтоб получить желаемое.
    Написано
  • Где найти книгу "Компьютерные сети. Нисходящий подход"?

    @res2001
    У букинистов вполне реально купить. Есть в интернете соответствующие площадки.
    Правда иногда приходится ждать довольно долго.
    Несколько лет назад так покупал "Разработку сетевых приложений" Стивенса.

    Вместо «Компьютерные сети. Нисходящий подход» можете взять актуальные издания Олиферов или Таненбаума по сетям. В принципе содержание похожее.
    Написано
  • Как сложить два 16-ных числа?

    @res2001
    Вообще все арифметические действия в разных позиционных системах счисления (СС) производятся одинаково.
    Но т.к. в жизни мы привыкли только к десятичной СС, то бывает сложно перенести те же действия на СС с другим основанием. Но если немного подумать и набить руку, то станет это делать достаточно легко.
    Например, когда переносим разряд влево при сложении в десятичной системе - это значит мы переносим десяток (т.е. это основание СС), аналогично перенос разряда в 16 СС - это перенос 16 - основание СС и т.д. и т.п.
    Написано
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    Такой детализации не достаточно.
    Не знаю, что такое swap.img, это не похоже на стандартный линуксовый файл. Похоже на какой-то образ. Образ swap раздела что ли? Я не в курсе.

    Все остальное - это стандартные линуксовые каталоги они должны быть. Надо лезть глубже. Посмотрите детальней /var и /usr, может там что-то найдете подозрительное.
    На самом деле, возможно просто 10 Гб слишком мало. Я честно говоря уже давненько не ставил пустого линукса. Не могу сказать сколько там требуется места на диске. Раньше вроде бы было достаточно для не больших экспериментов.

    Запускайте du из-под sudo, а то что-то у вас мало стандартных каталогов на скрине.
    Написано
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    mmmonk21, Проще всего занового накатить виртуалку с новым диском.
    Если хочется приключений, то:
    1. расширить диск виртуалки, обычно это можно сделать средствами гипервизора
    2. внутри виртуалки загрузившись с livecd с gparted расширить раздел линукса. livecd нужен, т.к. расширять надо раздел root, а он всегда занят.

    Вообще стоит пройтись по разделу и посмотреть что отъедает память. Можно использовать утилиту du для этих целей.
    Написано
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    mmmonk21, Да, root раздел занят на 100%
    Создал 3 файла текстовых

    Может в этом причина? Как вы создавали эти файлы? Какого они размера?

    Хотя у вас и так раздел не слишком большой.
    Написано
  • Безопасен ли класс для многопоточности?

    @res2001
    Acaunt, Да, что-то не допонял этот момент. Хорошо, тогда это снимается.
    Написано
  • Безопасен ли класс для многопоточности?

    @res2001
    Acaunt, Нет конечно. Ведь в этом случае возможно одновременное выполнение push и pop - и все, с большой вероятностью очередь тут и загнется. А если повезет и она не сломается на первом же случае, то сломается на следующем.
    Все стандартные структуры не потокобезопасны, т.е. все операции с таким контейнером не потокобезопасны.
    Так что защищать нужно вообще все манипуляции с очередью, кроме тех случаев когда вы точно уверены, что тут будет только один поток (например вызов конструктора).
    Написано
  • Как выполнить статическую линковку с использованием libzip для создания исполняемого файла без DLL?

    @res2001
    yakheda,
    не понимаю как именно

    Раз вы используете vcpkg, то с его же помощью просто удалите динамическую библиотеку. На сколько помню там это можно сделать, хотя самому давно его использовать не приходилось, так что конкретные шаги не подскажу. В этом случае компилятор не найдя динамической библиотеки будет использовать статическую.

    Только тут какая-то не стыковка с этим вашим высказыванием:
    чтобы при компиляции не создавались dll файлы от этой библиотеки

    vcpkg устанавливает уже собранную библиотеку и собирать ее отдельно не требуется.

    Можно и самому собрать библиотеку в том виде, в каком вам требуется для проекта и использовать этот вариант библиотеки. Но для этого надо разобраться как ее собирать, обычно это описано где-то в readme, который идет вместе с исходниками библиотеки, или в документации.
    Некоторые библиотеки собирать довольно сложно, но вроде бы libzip не из их числа.
    Написано
  • Как выполнить статическую линковку с использованием libzip для создания исполняемого файла без DLL?

    @res2001
    Соберите libzip как статическую и используйте ее. Само подключение статической библиотеки к проекту никак не отличается от подключения динамической библиотеки.
    Написано
  • Ошибка collect2.exe: error: ld returned 116 exit status во время компиляции программы. Как исправить?

    @res2001
    msys2 - это не компилятор - это оболочка, которую можно нарастить с помощью пакетного менеджера несколькими видами компиляторов mingw/clang и стандартных библиотек.

    После переустановки msys2 и компиляторов внутрь, программу пересобирал?
    Программу запускаешь из ком.строки msys2 той же, в которой ее собирал?

    Такое впечатление, что либо программа собрана со старыми версиями стандартных библиотек (пересобрать программу после переустановки msys2 и компилятора) или при загрузке программы загрузчик не может найти нужные стандартные библиотеки (запускать в той же командной оболочке msys2, в которой была собрана программа, их там 5 штук вроде бы или может уже больше).
    Написано
  • Как перевести число из байтов в число?

    @res2001
    historydev,
    Почему основание здесь это максимальная ёмкость байта?

    Потому что вы раскладываете двухбайтовое целое на байты, а в каждом байте может быть закодировано 256 значений. Каждое значение байта - это одна цифра в 256ричной системе счисления.
    Для простоты проще представлять значения байта не цифрами [0; 255], а ASCII символами - тогда все хорошо складывается, каждый ASCII символ - это символ представляющий цифру в системе счисления по основанию 256.

    Я не видел реального использования 256ричной системы счисления, видел 36ричную на практике - в одной программе формировались пронумерованные выходные файлы, нумерация была в 36ричной системе счисления - так можно было в 3 символах расширения файла закодировать дофига вариантов. В программе номер файла был порядковым днем в году - 365 вполне укладывается в 2 цифры в 36ричной системе счисления, да еще и с большим запасом.
    Кроме того стандартные Сишные функции из семейства strtol умеют оперировать всеми системами счисления вплоть до 36. Так что реализовать в коде подобную нумерацию файлов было не сложно.
    Написано
  • Как перевести число из байтов в число?

    @res2001
    historydev, Это позиционная система счисления с основанием 256 :-)
    В данном примере 208 и 7 - это "символы" представления цифры в позиционной системе счисления, 256 - основание.
    https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B7%D...
    Написано
  • Какую сетевую карту выбрать для RDP на 20 человек?

    @res2001
    Если не гонять по RDP видео и игры, то сетевуха не является узким местом для протокола. Он очень экономичный в плане нагрузки на сеть, экономичнее почти всех аналогов и под виндой и под линуксом. Лучше разве что цитриксовский IMA из которого, собственно, и растут ноги у RDP.
    Ищите другие причины проблем.
    Написано
  • Как вернуть значение на которое указывает указатель?

    @res2001
    Тут пожалуй std::Variant хорошо подойдет. Но все равно список типов будет ограничен теми, что заданы в шаблоне.

    Вообще необходимость в таком списке, где можно хранить все что угодно, сомнительна, по моему.

    Видится более жизненный вариант, когда у вас есть некая иерархия классов, у которых один и тот же родитель и в списке вы будете хранить ссылку на родительский класс. А доступ к функционалу дочерних классов будете получать, вызывая виртуальные методы.
    Собственно список в питоне построен примерно по тому же принципу, т.к. там все объекты имеют, грубо говоря, один базовый класс (хотя сам питон написан на Си).
    Написано
  • Скорость интернета 100 мбит вместо 1 гбит, что делать?

    @res2001
    Где вы видите скорость 100 Мб? Кем заявлена скорость 1 Гб?

    Даже если в вашей локальной сети (от компа до роутера) скорость будет 1 Гб - это никак не гарантирует, что скорость в интернете к произвольному хосту (сайту) будет 1 Гб. Т.к. в интернете всегда есть 2 стороны обмена трафиком и у каждой из них свои собственные ограничения пропускной способности, а так же дополнительно накладываются ограничения промежуточных узлов, через которые передается трафик. Провайдер может гарантировать скорость только в пределах сети подконтрольной ему, а дальше - как повезет.
    Написано