Потребление памяти MarkLogic зависит, помимо прочего, от различных настроек кэша группы и базы данных, а также от количества активных лесов.
Предлагаю ознакомиться со статьей Основы потребления ресурсов , в которой есть раздел Использование памяти в MarkLogic Server . Также стоит обратиться к Справочнику по настройке и запросам
Память хоста относится к объему оперативной памяти в сконфигурированной системе или экземпляре.
Вы можете увеличить объем памяти, который MarkLogic может потреблять, внеся изменения в настройки уровня группы.
В интерфейсе администратора перейдите на Настроить -> Группы -> [По умолчанию] Настроить вкладку , и убедитесь, что «размер кэша» установлен на Manual , а затем вы можете настроить различные размеры кэша по своему усмотрению.
Вы также захотите убедиться, что вы уже выполнили соответствующую настройку уровня ОС для размеров подкачки и других рекомендаций для ОС, на которой вы работаете.
Если позже вы добавите память в систему, вам также понадобится вернуться к настройке групповых кешей и перестановке ОС.
Это мог быть инициализатор для статического объекта, который перестал работать, прежде чем Ваше основное () называют?
У Вас есть несколько основного в двоичном файле? Попытайтесь использовать nm
на нем. (это не должно быть возможно как ld
не свяжется с дубликатами, но войдет в динамическое, освобождает, и искать _main
там)
nm a.out | grep -5 _main
Это должно дать 5 строк прежде и после любого _main
найденный в двоичном файле a.out
Если у Вас есть несколько, посмотрите окружающие символы для подсказок, в каких частях они находятся...
Следующий шаг может быть должен сделать то же на каждом динамическом lib, который используется. Получить список используемого динамического использования библиотек otool
otool -L a.out
Я не уверен, как найти другой, но можно указать собственную точку входа явно и сделать другую неиспользованной. Можно использовать компоновщика GNU ld-e опция установить точку входа.
- e запись
- entry=entry
Используйте запись в качестве явного символа для начала осуществления Вашей программы, а не точки входа по умолчанию. Если не будет никакого sym-bol назван записью, то компоновщик попытается проанализировать запись как число и использование, что как адрес записи (число будет интерпретироваться в основе 10; можно использовать продвижение 0x для основы 16 или продвижение 0 для основы 8).
Для будущих читателей, если у Вас есть эта проблема в Windows. Эквивалентная опция компоновщика является ЗАПИСЬЮ/.
Вы пытались прокрутить свой исполняемый файл nm
? Это смогло давать Вам некоторые подсказки. Я не думал бы, что будет возможно связать программу больше чем с одной глобально видимой названной функцией main()
, не уверенный, как этому удается произойти.
Просмотрите заголовочные файлы, которые Вы включаете и видите, нет ли определения, которое повторно отображается main
к чему-то еще. Это - старый прием, чтобы гарантировать, что основная функция библиотеки вызвана первая для приведения в порядок некоторого набора. Обычно это в конечном счете вызовет Вашу основную функцию путем обращения к переопределенному значению.
Быстрый взлом:
readelf -s -w my_bin_file > temp.txt
Откройте temp.txt, ищите основной (с FUNC в одном столбце), Идут вплоть до Вас, находят первый столбец FILE - это - файл со связанным основным.
править: Это только работает над разновидностями Unix GNU и друзьями. OS X использует Мужественный формат, не ELF.
Я знаю, что в C, можно было назвать другой entrypoint перед основной функцией, которая могла быть идеей. Код обычно похож:
void __attribute__ ((constructor)) my_main(void);
Возможно, можно искать что-то как этот в коде.
В C существуют также различные способы поймать основную функцию и назвать его после "реального" основного. Некоторая библиотека потоков имеет этот вид взломов для "подготовления" environnement, планировщика и материала как этот.
Это не действительно полезно, но это может объяснить, почему Ваше основное не называют вообще.
Надеюсь, это поможет!
Другое примечание.
WxWidgets действительно также определяют свое собственное main
Как во всех программах должна быть "основная" функция. Под wxWidgets основным реализован с помощью этого макроса, который создает экземпляр приложения и запускает программу.
IMPLEMENT_APP(MyApp)
Генерируйте файл карты. Большинство программ на самом деле не запускается в основном. mapfile от GCC должен сказать Вам, что адрес __ запускается или __ executable_start, который необходимо смочь прервать и ступить до, видят то, что заставляет программу выходить.
Похоже, что можно было назвать файл b44ExpLogTable.cpp
скомпилированный в Ваш двоичный файл или некоторую thirdpart библиотеку. Похоже, что мало программы должно генерировать exp () таблица, но так или иначе стало импортированным в Ваш проект (проекты)
Посмотрите это и это в источниках FreeImage