Как я нахожу основное своей программы (…) функция?

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

Предлагаю ознакомиться со статьей Основы потребления ресурсов , в которой есть раздел Использование памяти в MarkLogic Server . Также стоит обратиться к Справочнику по настройке и запросам

Память хоста относится к объему оперативной памяти в сконфигурированной системе или экземпляре.

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

В интерфейсе администратора перейдите на Настроить -> Группы -> [По умолчанию] Настроить вкладку , и убедитесь, что «размер кэша» установлен на Manual , а затем вы можете настроить различные размеры кэша по своему усмотрению.

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

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

7
задан Community 23 May 2017 в 10:33
поделиться

10 ответов

Это мог быть инициализатор для статического объекта, который перестал работать, прежде чем Ваше основное () называют?

8
ответ дан 6 December 2019 в 12:55
поделиться

У Вас есть несколько основного в двоичном файле? Попытайтесь использовать nm на нем. (это не должно быть возможно как ld не свяжется с дубликатами, но войдет в динамическое, освобождает, и искать _main там)

nm a.out | grep -5 _main

Это должно дать 5 строк прежде и после любого _main найденный в двоичном файле a.out

Если у Вас есть несколько, посмотрите окружающие символы для подсказок, в каких частях они находятся...

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

otool -L a.out
3
ответ дан 6 December 2019 в 12:55
поделиться

Я не уверен, как найти другой, но можно указать собственную точку входа явно и сделать другую неиспользованной. Можно использовать компоновщика GNU ld-e опция установить точку входа.

- e запись

- entry=entry

Используйте запись в качестве явного символа для начала осуществления Вашей программы, а не точки входа по умолчанию. Если не будет никакого sym-bol назван записью, то компоновщик попытается проанализировать запись как число и использование, что как адрес записи (число будет интерпретироваться в основе 10; можно использовать продвижение 0x для основы 16 или продвижение 0 для основы 8).

Для будущих читателей, если у Вас есть эта проблема в Windows. Эквивалентная опция компоновщика является ЗАПИСЬЮ/.

2
ответ дан 6 December 2019 в 12:55
поделиться

Вы пытались прокрутить свой исполняемый файл nm? Это смогло давать Вам некоторые подсказки. Я не думал бы, что будет возможно связать программу больше чем с одной глобально видимой названной функцией main(), не уверенный, как этому удается произойти.

1
ответ дан 6 December 2019 в 12:55
поделиться

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

1
ответ дан 6 December 2019 в 12:55
поделиться

Быстрый взлом:

readelf -s -w my_bin_file > temp.txt

Откройте temp.txt, ищите основной (с FUNC в одном столбце), Идут вплоть до Вас, находят первый столбец FILE - это - файл со связанным основным.

править: Это только работает над разновидностями Unix GNU и друзьями. OS X использует Мужественный формат, не ELF.

1
ответ дан 6 December 2019 в 12:55
поделиться

Я знаю, что в C, можно было назвать другой entrypoint перед основной функцией, которая могла быть идеей. Код обычно похож:

void __attribute__ ((constructor)) my_main(void);

Возможно, можно искать что-то как этот в коде.

В C существуют также различные способы поймать основную функцию и назвать его после "реального" основного. Некоторая библиотека потоков имеет этот вид взломов для "подготовления" environnement, планировщика и материала как этот.

Это не действительно полезно, но это может объяснить, почему Ваше основное не называют вообще.

Надеюсь, это поможет!

0
ответ дан 6 December 2019 в 12:55
поделиться

Другое примечание.

WxWidgets действительно также определяют свое собственное main

Отсюда

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

IMPLEMENT_APP(MyApp)

0
ответ дан 6 December 2019 в 12:55
поделиться

Генерируйте файл карты. Большинство программ на самом деле не запускается в основном. mapfile от GCC должен сказать Вам, что адрес __ запускается или __ executable_start, который необходимо смочь прервать и ступить до, видят то, что заставляет программу выходить.

0
ответ дан 6 December 2019 в 12:55
поделиться

Похоже, что можно было назвать файл b44ExpLogTable.cpp скомпилированный в Ваш двоичный файл или некоторую thirdpart библиотеку. Похоже, что мало программы должно генерировать exp () таблица, но так или иначе стало импортированным в Ваш проект (проекты)

Посмотрите это и это в источниках FreeImage

0
ответ дан 6 December 2019 в 12:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: