Ускорить как библиотеки в C
Можете ли вы рекомендовать рецензируемые библиотеки, которые я могу использовать в среде C (что-то вроде Boost для С++)? Что-то, что обеспечивает хэш, поток, межпроцессные коммуникации, списки, интеллектуальное управление памятью...
Окружающая среда - это встроенная система, а не очень минимальная система, но также не ПК!
Ответы
Ответ 1
+1 для GLib от меня тоже. Кроме того, он имеет свой собственный API потоковой передачи, поэтому вам не нужно изучать pthreads, если вы этого не хотите.
Не уверен, что в C существует такая вещь, как "интеллектуальное управление памятью", это не очень просто, когда у вас нет защитных сетей деструкторов и управления операторами. Но, опять же, у GLib есть много структур данных, ориентированных на память, и вещи, которые действительно облегчают жизнь.
И нет, я не в команде GLib, но мне действительно нравится.:)
Ответ 2
Я не уверен, что вы найдете одну библиотеку, которая покрывает все это... но вы можете проверить glib и pthreads, чтобы покрыть это.
Ответ 3
Просмотрите проект Apache Portable Runtime (APR).
Некоторые из этих функций:
- API управления памятью
- потоки, мьютексы
- файл ввода/вывода
- атомные операции
- хэш-таблицы, массивы
- сетевые сокеты и протокол
- общая память, mmap
Не говоря уже о переносимости.
Ответ 4
Посмотрите Boehm GC - широко используемый консервативный сборщик мусора для C (или С++), который может удовлетворить ваши потребности, поскольку интеллектуальное управление памятью заинтересованных сторон.
Ответ 5
Я тоже буду прыгать на лейбле GLib. Помните, что C не предоставляет никакого синтаксического сахара для сложных структур данных, поэтому в GLib есть много отливок и длинных имен функций, но он действительно делает большую и эффективную работу с небольшой добавленной многословностью!
Ответ 6
О применении Glib.
Вероятно, вы можете взять то, что вам нужно, и перекрестно скомпилировать его. Так что если вам просто нужен пакет потоков - просто скомпилируйте это и не возьмите все.
Я делаю то же самое с Python VM. PyMite подходит для микроконтроллера и не использует все функции.