tag:blogger.com,1999:blog-410416665291724878.post8849579629561656336..comments2022-12-19T13:52:22.907+04:00Comments on >рабочие заметки: Stack allocation vs scalar replacementRuslan Chereminhttp://www.blogger.com/profile/01023948540752159657noreply@blogger.comBlogger36125tag:blogger.com,1999:blog-410416665291724878.post-32342174938975497062016-03-30T20:17:54.032+04:002016-03-30T20:17:54.032+04:00Спасибо, прослежу.Спасибо, прослежу.Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-65901060122997297302016-03-30T15:05:54.967+04:002016-03-30T15:05:54.967+04:00путь - PhaseMacroExpand::scalar_replacement-> P...путь - PhaseMacroExpand::scalar_replacement-> PhaseMacroExpand::value_from_mem-> InitializeNode::find_captured_store-> InitializeNode::captured_store_insertion_pointVitaly Maryinhttps://www.blogger.com/profile/08358509067446851983noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-81482045129568984232016-03-24T11:19:10.695+04:002016-03-24T11:19:10.695+04:00Любопытно -- я не смог найти этого в коде EA. Я ви...Любопытно -- я не смог найти этого в коде EA. Я вижу, что TrackedInitializationLimit используется для ограничения каких-то других оптимизаций инициализации, вроде обнуления памятиRuslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-31204737299742893972016-03-23T01:10:14.241+04:002016-03-23T01:10:14.241+04:00"то массив скаляризуется до length=64"
н..."то массив скаляризуется до length=64"<br />на самом деле предел 64 очень условный - для byte[64] - да, но вот с double[64] всё интереснее.<br />В общем случае, память под массив не должна быть больше (TrackedInitializationLimit * HeapWordSize)Vitaly Maryinhttps://www.blogger.com/profile/08358509067446851983noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-11953307998859935552016-02-26T00:00:58.004+04:002016-02-26T00:00:58.004+04:00Спасибо. Да, для всего есть свой ключик )Спасибо. Да, для всего есть свой ключик )Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-50700069520119028972016-02-25T23:59:50.708+04:002016-02-25T23:59:50.708+04:00Можно. Но дело в том, что без GC его надо именно _...Можно. Но дело в том, что без GC его надо именно _делать_ -- причем в таких ситуациях, где проблема совершенно не очевидна, про нее знать надо. А с GC проблемы остаются в тех ситуациях, где они более-менее очевидны. То есть GC добавляет всей системе интуитивности -- он решает проблему именно в тех случаях, когда она наименее очевидна. Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-32762024243270104192016-02-25T12:36:11.207+04:002016-02-25T12:36:11.207+04:00Виталик Марин подсказал про такой ключи jvm (в jvm...Виталик Марин подсказал про такой ключи jvm (в jvm на все есть свой ключ)<br /><br />-XX:EliminateAllocationArraySizeLimit=64<br /><br />Тут чуть подробнее<br />http://stackoverflow.com/questions/18810505/declaring-multiple-arrays-with-64-elements-1000-times-faster-than-declaring-arraAnonymoushttps://www.blogger.com/profile/01127617543560899765noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-23931136853925639182016-02-25T00:30:55.442+04:002016-02-25T00:30:55.442+04:00Тут речь не о поиске готовой либы - а о том как эт...Тут речь не о поиске готовой либы - а о том как это написать самим<br />Зачем не спрашивайте :)Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-76982635580162300232016-02-23T13:09:55.305+04:002016-02-23T13:09:55.305+04:00Я пока до конца так и не понял решаемую задачу и о...Я пока до конца так и не понял решаемую задачу и ограничения, в которых вы работаете<br /><br />Если начинаются разговоры про большую кучу и чтобы не под jvm gc, то я бы посмотрел на упоминаемый chronicle (http://chronicle.software/products/chronicle-map/) и ему подобныеAnonymoushttps://www.blogger.com/profile/01127617543560899765noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-43429920237341190272016-02-23T00:17:10.085+04:002016-02-23T00:17:10.085+04:00Да на лабе (Xeon) аггрегирую под 100ГБ
Дадите 100Т...Да на лабе (Xeon) аггрегирую под 100ГБ<br />Дадите 100Т хип и там можно саггрегироватьAlexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-3304432940916363332016-02-23T00:15:34.308+04:002016-02-23T00:15:34.308+04:00ну 100ТБ это я загнул
Но 10Г на MacBookPro аггреги...ну 100ТБ это я загнул<br />Но 10Г на MacBookPro аггрегирую<br />Без HashMap само собой<br />Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-61821236828499801372016-02-23T00:14:37.618+04:002016-02-23T00:14:37.618+04:00Этот комментарий был удален автором.Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-39805464656793591962016-02-23T00:12:15.987+04:002016-02-23T00:12:15.987+04:00Про агрегацию 100тб в хипе. Можно чуть подробней -...Про агрегацию 100тб в хипе. Можно чуть подробней - на каком железе эта задача решается? Chronicle и подобные..?Anonymoushttps://www.blogger.com/profile/01127617543560899765noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-15563751037021103482016-02-22T23:53:22.358+04:002016-02-22T23:53:22.358+04:00Ну подобный финт ушами можно гарантировать и без Г...Ну подобный финт ушами можно гарантировать и без ГЦ<br />Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-58820664397792842742016-02-22T23:53:03.065+04:002016-02-22T23:53:03.065+04:00Этот комментарий был удален автором.Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-39200598989914232262016-02-22T23:47:56.569+04:002016-02-22T23:47:56.569+04:00Универсально никак не решает. Но важный частный сл...Универсально никак не решает. Но важный частный случай, это когда ты удалил узел из concurrent структуры данных, память почистил, аллокатор тут же выдал эту память под запрос аллокации следующему клиенту, и клиент этот же кусок памяти в структуру вставил. А ты и не заметил, что царя-то подменили. А в джаве GC тебе не даст переиспользовать память, пока есть хоть одна живая ссылка. Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-31458331395055255512016-02-22T23:43:12.945+04:002016-02-22T23:43:12.945+04:00А как Java разрешает проблему с ABA ?А как Java разрешает проблему с ABA ?Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-40314881033950703102016-02-22T23:28:14.907+04:002016-02-22T23:28:14.907+04:00ABA -- это когда CAS не может отличить ситуацию, к...ABA -- это когда CAS не может отличить ситуацию, когда ничего не изменилось, от ситуации, когда что-то изменилось, а потом все вернули взад. В некоторых алгоритмах это разные ситуации, и они должны по-разному обрабатываться, и поэтому приходится вводить дополнительные признаки. <br /><br />Что касается менеджера памяти -- сколько процентов приложений на яве используют сотни Гб памяти? Когда их Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-24005590672228711402016-02-22T23:23:47.898+04:002016-02-22T23:23:47.898+04:00https://ci.apache.org/projects/flink/flink-docs-ma...https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/runtime/memory/MemoryManager.html<br />Вот что люди пишут чтобы подружить джаву и большие данные<br /><br />На скажи Руслан - разве не изврат ? Сам язык должен предоставлять подобные примитивы - ан нет - народ садится и пишет собственный менеджмент памятью чтоб ГЦ не угробил все приложение<br /><br />Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-2170080390142133872016-02-22T23:07:14.619+04:002016-02-22T23:07:14.619+04:00Кстати что ты имеешь ввиду под "ABA"
Вид...Кстати что ты имеешь ввиду под "ABA"<br />Видимо квалификации не достаетAlexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-35992414718861238552016-02-22T23:05:12.336+04:002016-02-22T23:05:12.336+04:00Я сейчас работаю с большими данными
Ну это когда н...Я сейчас работаю с большими данными<br />Ну это когда надо саггрегировать 100ТБ в хипе<br /><br />Вот уже где приходится доставать бубен и танцевать<br />Ну не работает тут джавовая хешмапа - не работает<br />Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-70252913777317091932016-02-22T22:42:34.162+04:002016-02-22T22:42:34.162+04:00Мне кажется, ты недооцениваешь роль GC в "плю...Мне кажется, ты недооцениваешь роль GC в "плюшках" java. На хабре есть цикл статей по реализации concurrent структур данных в С++ -- это адъ и преисподня. В джаве ты даже с ABA редко встречаешься благодаря GC, я уж не говорю о concurrent аллокации/деаллокации. <br /><br />Меня лично GC более чем устраивает. Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-14905142649711082902016-02-22T22:31:50.993+04:002016-02-22T22:31:50.993+04:00Ох уж эти слухи и real-time java.
Вот честно хочу...Ох уж эти слухи и real-time java.<br /><br />Вот честно хочу язык с плюшками Java и без GC<br />Одно зло от GC и извраты<br /><br />То UNSAFE, то преаллокация.<br /><br />Колдовство с бубнами а не программированиеAlexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-10858976463365908952016-02-22T22:29:38.060+04:002016-02-22T22:29:38.060+04:00В real-time java есть похожая штука. Только RT JVM...В real-time java есть похожая штука. Только RT JVM, по слухам, на порядок медленнее обычной. Не знаю, связаны ли эти вещи :)Ruslan Chereminhttps://www.blogger.com/profile/01023948540752159657noreply@blogger.comtag:blogger.com,1999:blog-410416665291724878.post-45668373736171700172016-02-22T22:27:06.075+04:002016-02-22T22:27:06.075+04:00Я тут недавно слышал про новый язык "D"....Я тут недавно слышал про новый язык "D".<br />Говорят там можно отдельно управлять кусками хипа как своего рода зонами.<br /><br />Даешь разделение хипа в Java по зонам.<br /><br />boolean turn_off_gc=true<br />HeapSegment segment = new HeapSegment(turn_off_gc);Alexander Toktarevhttps://www.blogger.com/profile/07858698340230694316noreply@blogger.com