Каковы .pidb файлы MonoDevelop?

Есть действительно прямой способ сделать это. Я потратил некоторое время на то, чтобы разобраться в этом, чтобы найти очень многократно используемое решение. К сожалению, я делал это только на OSX, но вы сможете довольно легко следовать за ним, если вы работаете на другой ОС.
Для этого метода вам понадобятся:

  • Установить Homebrew

  • OpenSSL (brew install openssl в терминале после установки Доморощенный)

  • Создайте новый файл .sh и установите следующее содержимое:

    openssl s_client -servername $1 -connect $1:443 | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

  • Сохранить файл на диск

  • Из окна терминала позвоните bash www.google.com

Теперь это должно вернуть хеш, который вам требуется, и оставить вас с милым маленьким многоразовым решением , Возможно, вам придется нажать ctrl kbd> + c kbd> после возвращения хэша.

Это должно оставить вас с чем-то вроде следующего: enter image description here
Надеюсь, что это поможет кому-то.
Благодаря

44
задан weiqure 20 June 2009 в 17:47
поделиться

2 ответа

Из сообщения в блоге MonoDevelop :

Несколько давно ожидающих рассмотрения отчеты об ошибках, и я также хотел немного улучшить производительность и использование памяти. MonoDevelop создает База данных парсеров (pidb) файл для каждой сборки или проекта. Этот файл содержит всю информацию о классах, реализованных в сборка вместе с документацией вытащил из Monodoc. Файл pidb имеет три секции: первая - это заголовок, содержащий среди прочего вещи версия формата файла (эта версия проверяется при загрузке pidb, и файл будет восстановлен, если он не соответствует текущая версия реализации). В второй раздел - это указатель pidb файл. Он содержит указатель всех классы в базе данных. Индекс всегда полностью загружается в память, чтобы быть умеет быстро находить занятия. В третий раздел файла содержит все информация о классе: список методы, поля, свойства, документация для каждого из них, и скоро. Каждая запись в указателе имеет поле смещения файла, которое можно использовать полностью загрузить всю информацию класса (индекс содержит только имя).

Так что, похоже, это всего лишь оптимизация. Я бы лично не стал включать его в систему управления версиями, если вы не обнаружите, что он большой влияет на производительность: я предполагаю, что он действительно останется действительным только в том случае, если над проектом одновременно работает только один человек. (Если он большой и регулярно меняется, вы можете обнаружить, что он также увеличивает накладные расходы на репозиторий. Я не проверял, каков размер на самом деле, но это стоит проверить.)

54
ответ дан 26 November 2019 в 22:10
поделиться

Это просто кешированные данные завершения кода. Как объясняет пост, связанный с Джоном, основная причина заключается в экономии памяти, хотя они также избавляют вас от ожидания, пока MD проанализирует все исходные файлы и ссылочные сборки, когда вы открываете проект.

Файлы pidb могут быть довольно восстановлены. быстро, поэтому нет никаких преимуществ хранить их в VCS. Действительно, помимо накладных расходов на репозиторий VCS, это также может вызвать проблемы, если люди используют разные версии MD с разными форматами pidb, поэтому я настоятельно рекомендую не держать их в системе контроля версий.

17
ответ дан 26 November 2019 в 22:10
поделиться