- Что делает фотобиблиотека, когда я вхожу в свой Mac?
- Отключить автоматический запуск приложения Photos на Mac OSX Yosemite & El Capitan
- Question: Q: CPU load photolibraryd/photoanalysisd
- Question: Q: photolibraryd sucking up CPU in Sierra
- Helpful answers
- Символы Unicode: о чём должен знать каждый разработчик
- Введение в кодировку
- Краткая история кодировки
- Проблемы с ASCII
- Что такое кодовые страницы ASCII?
- Безумие какое-то.
- Так появился Unicode
- Unicode Transform Protocol (UTF)
- Что такое UTF-8 и как она работает?
- Напоследок про UTF
- Это всё?
- Заключение
Что делает фотобиблиотека, когда я вхожу в свой Mac?
Каждый раз, когда я вхожу в свой MacBook Pro, процессор на несколько секунд разгоняется до 100% +, моя плата нагревается, и вентиляторы начинают работать. Я открываю Activity Monitor и обнаруживаю, что виновата «фотобиблиотека». В чем дело? Что он делает, что использует столько ЦП?
- Вы недавно обновляли? Если это так, есть шанс, что новое приложение «Фотографии» творит чудеса оптимизации. Вы пробовали дать ему поработать на ночь?
- По общему признанию, он длится всего несколько секунд каждый раз, когда я вхожу в систему (достаточно долго, чтобы вентиляторы создавали много шума), но он нарушает практически бесшумную работу других. Я полагаю, это не так уж и важно, но если я смогу узнать об этом больше, возможно, я смогу это предотвратить.
- Может быть, синхронизировать iCloud?
- С таким большим ЦП? Кажется многовато .
- Я полагаю, у вас активирован iCloud и настроена синхронизация фотографий? Если это так, это легко проверить, потому что вы можете отключить некоторые из этих вещей, перезапустите и посмотрите, произойдет ли это по-прежнему.
Он также соответствует фотографиям, которые находятся в вашей локальной библиотеке и в iCloud. Так, например, если у вас есть проблема с синхронизацией, вы можете переключить библиотеку фотографий iCloud в Photos app → Preferences → iCloud и это вызовет полную повторную синхронизацию локальных фотографий и фотографий iCloud.
Когда это происходит (по крайней мере, в моей фотобиблиотеке 51 КБ), это занимает около 24 часов фотобиблиотека работает, чтобы сопоставить фотографии и синхронизировать изменения.
Если Photo Stream включен, photolibraryd подключается к iCloud и проверяет наличие новых фотографий в вашем Photo Stream. Если есть новые фотографии, они загружаются и добавляются в библиотеку фотографий, которую вы выбрали в качестве «системной» библиотеки.
Источник
Отключить автоматический запуск приложения Photos на Mac OSX Yosemite & El Capitan
Мне известно, что существуют решения, которые позволяют предотвратить автоматический запуск таких приложений, как iphoto или более новая замена, фотографии для каждого устройства через сам пользовательский интерфейс Photos и более полный контроль (можно указать, какое приложение открывается) через Image Viewer, но мой вопрос заключается в том, есть ли способ остановить универсальный автоматический запуск фотографий (независимо от того, какой съемный носитель я монтирую), предпочтительно с помощью команды записи по умолчанию или отключением launchd plist или аналогичного.
Я попытался выяснить это самостоятельно, используя статью из Lifehacker « Как найти скрытые функции в приложениях Mac ».
Я выпустил следующие команды:
Вывод вышеупомянутого может быть просмотрен / загружен через Gist
Я попробовал несколько ударов с многообещающими строками, такими как:
Пока не повезло. Я сделал:
это показывает, что две записи действительно были написаны, но они не делают ничего очевидного, и определенно не то, что я хотел.
Я не уверен, какой сервис делать killall для более быстрого тестирования, перезагрузка для тестирования — это своего рода излишество. Монитор активности показывает следующее с «фото» в качестве условия поиска:
Я попытался выполнить настройки по умолчанию, прочитанные в Фотоагентах и т.д., Даже избегая символов и других вариаций и чего бы то ни было, но безуспешно.
Буду признателен за помощь в достижении желаемого эффекта. Я бы тоже хотел получить образование, если бы не слишком много просил.
Источник
Question: Q: CPU load photolibraryd/photoanalysisd
it is a pity, but an old issue is back. After I was facing some issues with macOS I decided to reinstall everything from scratch and it was all nice for a while. Now, for a week or two, an «old» issue is reoccurring.
Shortly after connecting my Macbook with power, the fan starts to go crazy and makes the Macbook more to act like a heater than a notebook. Looking at the activity monitor I see that photolibraryd and photoanalysisd seem to be competing who could utilize more CPU power.
I knew, this is some kind of known behavior after loading large images or firstly migrating to the new Photos.app. But recall: I have neither added a large amount of images nor is this a fresh installation. It is running fine for 2-3 months already. Also, when opening Photos.app
- CPU load of the 2 processes decreases, fan is getting slower
- in the «People» section I cannot see an indication about the face detection needing to do something
Also activity monitor doesn’t show me any larger amount of image files to be accessed..
So well then, are there any advises I should follow other than not to use Photos.app anymore?
For the sake of completion, my environment:
- Macbook Pro 17″ End 2011
- CPU: 2,5 GHz Intel Core i7
- RAM: 16 GB 1333 MHz DDR3
- Disc: 1 TB SSD
- macOS Sierra Version 10.12.1
MacBook Pro, OS X Yosemite (10.10.3), MBP 17″ 16GB RAM 2 TB SSHD
Источник
Question: Q: photolibraryd sucking up CPU in Sierra
I have a moderate sized library
7,000 photos, and sometimes it just goes away for 3 minutes or more with the spinning beach ball. Activity Monitor shows CPU usage of 95–100% for a task called photolibraryd, and Photos is shown in red as «Not Responding». Memory Pressure is low, there is very little other activity, maybe 10 — 15%.
I do have a lot of Smart Albums, and I have folders that are nested 3 – 5 deep, with mostly Smart Albums in them. That may require a lot of index manipulation. I don’t know enough about Photos to have any idea. I have also had Photos crash at least twice while in this state.
In earlier releases this has been attributed to refreshing thumbnails, rebuilding the Faces database, etc. after a new release. I’ve had this release installed for well over a week. I use Photos every day, and the problem isn’t constant as I’ve seen it in earlier releases. Photos comes up, runs for awhile, then I get the beach ball. After awhile
5 minutes everything settles down. Then some time later maybe 10 minutes, maybe 30, here we go again. etc. etc.
MacBook, macOS Sierra (10.12), 8 Gb Ram
Posted on Oct 25, 2016 1:02 PM
Helpful answers
Its processing the facial recognition for the «people» album. It only runs when you are connected to power, so it wont kill your battery.
If you click on the «people» album you can see its progress (note that it will not continue processing while the app is open)
Mine has been doing this for several weeks, basically daily, but I have a pretty big library
Jan 9, 2017 11:15 PM
There’s more to the conversation
Loading page content
Page content loaded
How long have you have Sierra installed? There is a long, CPU intensive pass through the library identifying objects and people — this may take several days or even weeks adn until it is complete you may have seplls like this
Oct 25, 2016 3:13 PM
I’m about a week into Sierra — and CPU also running hard with photolibraryd 24/7 less a few moments when I think its done — and then it restarts. Library is in the 10s of thousands. If this is just face recognition in background, is there any way to know progress? I’d like to use machine on the road, but battery life is now reduced.
Nov 6, 2016 10:05 AM
Its processing the facial recognition for the «people» album. It only runs when you are connected to power, so it wont kill your battery.
If you click on the «people» album you can see its progress (note that it will not continue processing while the app is open)
Mine has been doing this for several weeks, basically daily, but I have a pretty big library
Jan 9, 2017 11:15 PM
One month later and mine is still processing almost daily. I would say its taken a little over 2 months of running in the background nearly every day to process 27,000 photos. So I would guess another month to finish the rest of my library.
Feb 7, 2017 6:16 AM
finally finished 47k photos after 3 months of running almost daily
Mar 5, 2017 6:59 PM
The problem is not strictly the CPU, but the Memory Pressure. Photolibraryd drives mine into the Red (Activity Monitor) on a regular, actually now incessant basis and everything else comes to a halt, this despite leaving the machine running over several nights. Why can’t I just turn it off? In fact, I have had to kill the process on multiple occasions just to get some work done, but it comes screaming back. I am on the point of exporting all my photos and resorting to running iPhoto on an older machine because this is incompatible with use of the MacBook as a professional tool.
Mar 13, 2017 8:42 AM
1 — Patience is a virtue and if you would stop messing with it and let it finish then it would be over — you are extending an required process
2 — you certainly can use any software you want — Photos is not required and many people do not use it for various reasons — be aware that iPhoto is dead and some day with some upgrade will totally quit working leaving you with a mess to resolve with fewer alternatives
3 — a Professional should never be using Photos (or iPhoto for that matter) as they are not professional programs — pros use Lightroom or other professional level programs
Mar 13, 2017 8:54 AM
While faces are a factor, there is more here than just facial recognition. This version of Photos adds object recognition, a feature I did not know about until I actually looked at «What’s New in Photos» a few days ago.
As others have reported, the iMac this morning is about halfway through the photoslibrary after a little less than 72 hours.
photoanalysisd is the top % CPU item but harmlessly so.
Apple points out that now you can search on natural language terms such as «pumpkin» and Photos will respond, quite outside of the system for searching on text present in photo titles, descriptions or keywords.
Enter such a term in the search box and Photos responds with the usual tabulation, at the top of which will be «categories», a new feature, showing the number of photos that match. Here’s an example from the iMac as Photos works its way through around 27,000 photos, this one matching the category «violin».
This photo is not annotated with title or description containing the text «violin». Apple has developed a fine-grained process to produce an accurate match of a photo such as this, showing only a small part of a violin. Thus if photos are detailed, presenting a host of possible or accurate matches, even a machine with a high capability for computational throughput could bog down.
Separately, I have seen iPhoto and Photos both generate false matches for faces, notably on flowers and the hubs of automotive wheels. That’s amusing to be sure, and could possibly contribute to the memory pressure you observe. I have not yet checked whether (or not) Photos has re-populated faces on flower photos from which they earlier were removed manually.
About memory usage and problems I can offer little insight as that is not happening here.
That is a lot of CPU for the iMac
iMac 27 Late-2015 Core i7 4.0 GHz
2 TB Fusion Drive 75% free
MacOS Sierra 10.12.3
Photos 2.0 (3130.0.240)
Yet memory pressure remains within reason. Again that’s a lot for this iMac. But other processes are running ok.
You mention force quit. When Photos halts on error you may very well wind up with a corrupt PhotosLibrary file since the file was not closed correctly. That happened here with iPhoto as the result of a different problem, and required a library rebuild.
I would also check whether there might be other processes that contribute to memory pressure. Trying a shutdown and startup in safe mode might shed some light on that issue.
Источник
Символы Unicode: о чём должен знать каждый разработчик
Если вы пишете международное приложение, использующее несколько языков, то вам нужно кое-что знать о кодировке. Она отвечает за то, как текст отображается на экране. Я вкратце расскажу об истории кодировки и о её стандартизации, а затем мы поговорим о её использовании. Затронем немного и теорию информатики.
Введение в кодировку
Компьютеры понимают лишь двоичные числа — нули и единицы, это их язык. Больше ничего. Одно число называется байтом, каждый байт состоит из восьми битов. То есть восемь нулей и единиц составляют один байт. Внутри компьютеров всё сводится к двоичности — языки программирования, движений мыши, нажатия клавиш и все слова на экране. Но если статья, которую вы читаете, раньше была набором нулей и единиц, то как двоичные числа превратились в текст? Давайте разберёмся.
Краткая история кодировки
На заре своего развития интернет был исключительно англоязычным. Его авторам и пользователям не нужно было заботиться о символах других языков, и все нужды полностью покрывала кодировка American Standard Code for Information Interchange (ASCII).
ASCII — это таблица сопоставления бинарных обозначений знакам алфавита. Когда компьютер получает такую запись:
то с помощью ASCII он преобразует её во фразу «Hello world».
Один байт (восемь бит) был достаточно велик, чтобы вместить в себя любую англоязычную букву, как и управляющие символы, часть из которых использовалась телепринтерами, так что в те годы они были полезны (сегодня уже не особо). К управляющим символам относился, например 7 (0111 в двоичном представлении), который заставлял компьютер издавать сигнал; 8 (1000 в двоичном представлении) — выводил последний напечатанный символ; или 12 (1100 в двоичном представлении) — стирал весь написанный на видеотерминале текст.
В те времена компьютеры считали 8 бит за один байт (так было не всегда), так что проблем не возникало. Мы могли хранить все управляющие символы, все числа и англоязычные буквы, и даже ещё оставалось место, поскольку один байт может кодировать 255 символов, а для ASCII нужно только 127. То есть неиспользованными оставалось ещё 128 позиций в кодировке.
Вот как выглядит таблица ASCII. Двоичными числами кодируются все строчные и прописные буквы от A до Z и числа от 0 до 9. Первые 32 позиции отведены для непечатаемых управляющих символов.
Проблемы с ASCII
Позиции со 128 по 255 были пустыми. Общественность задумалась, чем их заполнить. Но у всех были разные идеи. Американский национальный институт стандартов (American National Standards Institute, ANSI) формулирует стандарты для разных отраслей. Там утвердили позиции ASCII с 0 по 127. Их никто не оспаривал. Проблема была с остальными позициями.
Вот чем были заполнены позиции 128-255 в первых компьютерах IBM:
Какие-то загогулины, фоновые иконки, математические операторы и символы с диакретическим знаком вроде é. Но разработчики других компьютерных архитектур не поддержали инициативу. Всем хотелось внедрить свою собственную кодировку во второй половине ASCII.
Все эти различные концовки назвали кодовыми страницами.
Что такое кодовые страницы ASCII?
Здесь собрана коллекция из более чем 465 разных кодовых страниц! Существовали разные страницы даже в рамках какого-то одного языка, например, для греческого и китайского. Как можно было стандартизировать этот бардак? Или хотя бы заставить его работать между разными языками? Или между разными кодовыми страницами для одного языка? В языках, отличающихся от английского? У китайцев больше 100 000 иероглифов. ASCII даже не может всех их вместить, даже если бы решили отдать все пустые позиции под китайские символы.
Эта проблема даже получила название Mojibake (бнопня, кракозябры). Так говорят про искажённый текст, который получается при использовании некорректной кодировки. В переводе с японского mojibake означает «преобразование символов».
Пример бнопни (кракозябров).
Безумие какое-то.
Именно! Не было ни единого шанса надёжно преобразовывать данные. Интернет — это лишь монструозное соединение компьютеров по всему миру. Представьте, что все страны решили использовать собственные стандарты. Например, греческие компьютеры принимают только греческий язык, а английские отправляют только английский. Это как кричать в пустой пещере, тебя никто не услышит.
ASCII уже не удовлетворял жизненным требованиям. Для всемирного интернета нужно было создать что-то другое, либо пришлось бы иметь дело с сотнями кодовых страниц.
��� Если только ������ вы не хотели ��� бы ��� читать подобные параграфы. �֎֏0590��׀ׁׂ׃ׅׄ׆ׇ
Так появился Unicode
Unicode расшифровывают как Universal Coded Character Set (UCS), и у него есть официальное обозначение ISO/IEC 10646. Но обычно все используют название Unicode.
Этот стандарт помог решить проблемы, возникавшие из-за кодировки и кодовых страниц. Он содержит множество кодовых пунктов (кодовых точек), присвоенных символам из языков и культур со всего мира. То есть Unicode — это набор символов. С его помощью можно сопоставить некую абстракцию с буквой, на которую мы хотим ссылаться. И так сделано для каждого символа, даже египетских иероглифов.
Кто-то проделал огромную работу, сопоставляя каждый символ во всех языках с уникальными кодами. Вот как это выглядит:
Префикс U+ говорит о том, что это стандарт Unicode, а число — это результат преобразования двоичных чисел. Стандарт использует шестнадцатеричную нотацию, которая является упрощённым представлением двоичных чисел. Здесь вы можете ввести в поле что угодно и посмотреть, как это будет преобразовано в Unicode. А здесь можно полюбоваться на все 143 859 кодовых пунктов.
Уточню на всякий случай: речь идёт о большом словаре кодовых пунктов, присвоенных всевозможным символам. Это очень большой набор символов, не более того.
Осталось добавить последний ингредиент.
Unicode Transform Protocol (UTF)
UTF — протокол кодирования кодовых пунктов в Unicode. Он прописан в стандарте и позволяет кодировать любой кодовый пункт. Однако существуют разные типы UTF. Они различаются количеством байтов, используемых для кодировки одного пункта. В UTF-8 используется один байт на пункт, в UTF-16 — два байта, в UTF-32 — четыре байта.
Но если у нас есть три разные кодировки, то как узнать, какая из них применяется в конкретном файле? Для этого используют маркер последовательности байтов (Byte Order Mark, BOM), который ещё называют сигнатурой кодировки (Encoding Signature). BOM — это двухбайтный маркер в начале файл, который говорит о том, какая именно кодировка тут применена.
В интернете чаще всего используют UTF-8, она также прописана как предпочтительная в стандарте HTML5, так что уделю ей больше всего внимания.
Этот график построен в 2012-м, UTF-8 становилась доминирующей кодировкой. И всё ещё ею является.
Что такое UTF-8 и как она работает?
UTF-8 кодирует с помощью одного байта каждый кодовый пункт Unicode с 0 по 127 (как в ASCII). То есть если вы писали программу с использованием ASCII, а ваши пользователи применяют UTF-8, они не заметят ничего необычного. Всё будет работать как задумано. Обратите внимание, как это важно. Нам нужно было сохранить обратную совместимость с ASCII в ходе массового внедрения UTF-8. И эта кодировка ничего не ломает.
Как следует из названия, кодовый пункт состоит из 8 битов (один байт). В Unicode есть символы, которые занимают несколько байтов (вплоть до 6). Это называют переменной длиной. В разных языках удельное количество байтов разное. В английском — 1, европейские языки (с латинским алфавитом), иврит и арабский представлены с помощью двух байтов на кодовый пункт. Для китайского, японского, корейского и других азиатских языков используют по три байта.
Если нужно, чтобы символ занимал больше одного байта, то применяется битовая комбинация, обозначающая переход — он говорит о том, что символ продолжается в нескольких следующих байтах.
И теперь мы, как по волшебству, пришли к соглашению, как закодировать шумерскую клинопись (Хабр её не отображает), а также значки emoji!
Подытожив сказанное: сначала читаем BOM, чтобы определить версию кодировки, затем преобразуем файл в кодовые пункты Unicode, а потом выводим на экран символы из набора Unicode.
Напоследок про UTF
Коды являются ключами. Если я отправлю ошибочную кодировку, вы не сможете ничего прочесть. Не забывайте об этом при отправке и получении данных. В наших повседневных инструментах это часто абстрагировано, но нам, программистам, важно понимать, что происходит под капотом.
Как нам задавать кодировку? Поскольку HTML пишется на английском, и почти все кодировки прекрасно работают с английским, мы можем указать кодировку в начале раздела .
Важно сделать это в самом начале , поскольку парсинг HTML может начаться заново, если в данный момент используется неправильная кодировка. Также узнать версию кодировки можно из заголовка Content-Type HTTP-запроса/ответа.
Если HTML-документ не содержит упоминания кодировки, спецификация HTML5 предлагает такое интересное решение, как BOM-сниффинг. С его помощью мы по маркеру порядка байтов (BOM) можем определить используемую кодировку.
Это всё?
Unicode ещё не завершён. Как и в случае с любым стандартом, мы что-то добавляем, убираем, предлагаем новое. Никакие спецификации нельзя назвать «завершёнными». Обычно в год бывает 1-2 релиза, найти их описание можно здесь.
Если вы дочитали до конца, то вы молодцы. Предлагаю сделать домашнюю работу. Посмотрите, как могут ломаться сайты при использовании неправильной кодировки. Я воспользовался этим расширением для Google Chrome, поменял кодировку и попытался открывать разные страницы. Информация была совершенно нечитаемой. Попробуйте сами, как выглядит бнопня. Это поможет понять, насколько важна кодировка.
Заключение
При написании этой статьи я узнал о Майкле Эверсоне. С 1993 года он предложил больше 200 изменений в Unicode, добавил в стандарт тысячи символов. По состоянию на 2003 год он считался самым продуктивным участником. Он один очень сильно повлиял на облик Unicode. Майкл — один из тех, кто сделал интернет таким, каким мы его сегодня знаем. Очень впечатляет.
Надеюсь, мне удалось показать вам, для чего нужны кодировки, какие проблемы они решают, и что происходит при их сбоях.
Источник