All streams
Search
Write a publication
Pull to refresh
40
0
sysprg @sysprg

User

Send message
Ох, почему на любом русскоязычном форуме чуть ли не любая дискуссия в итоге переходит в терминологические споры и пальцы веером? Какая содержательная разница сказать аллокатор с поколениями или сборщик мусора с поколениями? Будто Вам непонятно, о чем идет речь.
Если нужно предельное быстродействие - то нет отдельно аллокатора и отдельно стратегии сборки мусора. Это только в теории можно отделить их безболезненно. Для выделения памяти в классическом аллокаторе нам нужна структура, которая:
- Быстро находит свободное место нужного размера,
- Не ведет к сильной фрагментации памяти,
- По возможности избегает раздачи блоков из одной линии кэша разным тредам,
- Если это возможно, то не содержит одного глобального mutex-а на всю кучу.
Но стратегия сборки мусора принципиальным образом влияет на выбор алгоритма, например:
- Арена нулевого поколения может быть вообще стеком, если затем блоки будут перенесены в другую память,
- Если сборщик мусора перемещающий, то можно ослабить требование низкой фрагментации и применить более эффективные, но фрагментирующиеся структуры для разметки блоков и для поиска подходящего блока,
- Управление параллельностью при сборке мусора, при аллокации [и возможно при доступе] связаны друг с другом, что приведет или к использованию общей методики защиты от порчи структур из разных тредов, или наоборот – снимет требование не иметь одного глобального mutex-а, что существенно упростит аллокатор.
Вообще при написании аллокатора для мультитредной системы основная головная боль - как избавится от одного глобального лока. На втором месте неразрешимая в классической парадигме проблема разделения строк кэша.
Поэтому, во всяком случае в моей изращенной голове все эти задачи неразделимы.
15 лет назад я был сторонником языков с неявным управлением памятью, динамических этих и тащился от них. Потом стал работать на телефонистов, у которых мульти-канальные системы, реальное время и борьба за быстродействие. Пришел к выводу, что все со сборкой мусора - отстой, лучше уж трахаться явной отменой памяти, чем смотреть, как мигает лампока HDD при работе очередного Java-приложения, которому не хватает памяти, чтобы нарисовать два окна на экране.
Теперь занимаюсь параллельной обработкой данных и придерживаюсь третей парадигмы - с моей точки зрения вообще все классические (основанные на одной куче или на кучах привязанных к тредам) подходы к управлению памяти отстойные, потому, что единственное правильное решение - не иметь никакой общей памяти и иметь много отдельных, не защищенных mutex-ами структур для аллокации, созданных содержательно, а не формально по принципу одна куча на тред и т.п. Sharing nothing лучше всего ляжет на архитектуры будущего, я думаю.
Согласен с Вами, что в России прогресс в этой области не делается. Но благодаря глобализации мира Россия тоже включится в общие изменения.
За снятие всех ограничений, связанных с вмешательством операторов в трафик, борются такие компании, как Google, Microsoft, eBay и прочие. Все компании, большие и маленькие, так или иначе связанные с Интернетом, Web 2.0 и новыми on-line технологиями кровно заинтересованы в том, чтобы у пользователя на мобильнике был быстрый Интернет без ограничений. Это критично для бизнеса новой волны. И эти компании уже обращаются к правительствам с инициативами, направленными на снижение стоимости мобильных коммуникаций и предлагают запретить искажения трафика провайдерами (мобильными и обычными).
Понятно, что будущее за VoIP (против коммутируемых каналов, которыми на long distance уже давно не пользуются и сами операторы). Будущее и за Instant Messaging против классических SMS. Так же оно за P2P сетями разного типа. Прогресс не остановить и самое интересное - эти новые технологии тоже принесут огромные деньги тем, кто их первыми освоит. :)
А раз так, то мобильные операторы вынуждены будут (чтобы остаться на рынке!) обеспечить своим клиентам быструю и дешевую передачу пакетов и они отключат все свои фильтры и подавители трафика. Плюс этому поспособствуют и технологии типа Wi-Fi.
Когда в любом новомодном телефоне будет по умолчанию стоять уже настроенный IM-клиент и звонилка типа Skype (или собственно сам Skype), то цена на классические SMS упадет до абсолютного нуля, голосовая связь тоже будет безлимитной и бесплатной.
Пример: как только во Франции люди начали массово устанавливать у себя xDSL и почти перестали звонить через обычную телефонию, а затем вообще началось массовое дегруппировние, France Telecom тут же сделала звонки бесплатными даже на обычных телефонных линиях. Потому, что абонентская плата не только покрывает всю стоимость звонков сейчас, но она десять лет уже эту стоимость покрывала, просто раньше можно было стричь купоны при отсутствии конкурентов, а сейчас уже не получится.
Идеальным решением проблемы мобильных операторов с моей точки зрения было бы разделение на разные бизнесы тех, кто владеет полосой частот (вышками) и тех, кто оказывает все остальные сервисы (передача сообщений, передача голоса, доступ в Интернет). Сразу же резко упадут цены, так как компании, предоставляющие услуги, будут покупать трафик по одной и той же цене, а между ними возникнет острая конкурентная борьба за клиента.
Интересная альтернатива - wireless доступ на основе P2P-технологий. Но с этим многое неясно еще.
Так же было бы отлично, если бы телефоны перестали распространятся через операторов (это основная схема за пределами ex-USSR).
Кстати, положение с мобильной связью в России не самое худшее. Во Франции мобильная связь намного дороже, количество и качество предоставляемых дополнительных услуг ниже, GPRS дорогой до жути - вообще не практичен для массового пользователя, по сути только для техноэлиты и бизнесменов.
Спасибо за поддержку, ниже написал развернутое продолжение.
Спасибо за поддержку! Дело в том, что завышенная стоимость услуг мобильной связи это по большому счету даже не тема для споров (завышенная она или нет). Это просто 100% известный факт. Много лет я работал на компании, которые производят телекоммуникационное оборудование или занимаются VoIP и неплохо представляю, как это оборудование используется у заказчиков. Могу со 100% точностью сказать, что потребительская стоимость услуг в области связи всегда была чудовищно завышена по сравнению с их себестоимостью. В этом виноваты даже не отдельные операторы, а вся структура бизнеса в отрасли и та модель, с помощью которой государство регулирует этот бизнес. Чтобы снизить стоимость услуг мобильной связи не нужно даже вводить новые технологии - достаточно просто принять решение на государственном уровне. Формально связь не принадлежит какому-то одному тресту, но де-факто вся отрасль - это такой самоорганизующийся картельный сговор с участием государства, который держит высокие цены. Высокие цены до какого-то времени полезны - они накачивают отрасль деньгами, что ведет к бурному росту компаний и появлению новых технологий. Мы, потребители, на начальном этапе вкладываем деньги в будущую дешевую связь. Сначала мы платим (например) 20 центов за SMS и 70 центов за звонок, что позволяет сделать сверхприбыль сотовому оператору, который в свою очередь кормит владельцев бэкбонных сетей, производителей коммутаторов и шлюзов, производителей телефонов и так далее. Они все вместе зарабатывают огромные деньги и неплохую часть этих денег вкладывают в research. Появляются новые аппаратные технологии, пишется новый soft, идет бурное развитие отрасли. Можно снижать цены на связь и привлекать новых абонентов, не теряя и даже наращивая прибыль. Стоимость услуг падает для примера до 5 центов за SMS и 10 центов за звонок... Поэтому как это ни парадоксально, нельзя сразу же устанавливать "справедливые" тарифы на связь - так как они остановят развитие отрасли. Сначала высокой ценой мы, потребители, финансируем будущий прогресс.
Однако в какой-то момент этот механизм, призванный способствовать развитию технологий, начинает тормозить их. Операторы и производители "классического" оборудования зарастают жиром настолько, что уже не хотят никаких новых технологий. И привыкают к сверхприбылям. И когда появляются технологии новой волны - они начинают их давить. Например, начинают искажать трафик, чтобы сделать невозможной нормальную работу VoIP, IM, P2P. Аналогично поступают или поступали и многие операторы широкополосного доступа (xDSL, Cable). А еще раньше появлению дешевой пакетной передаче данных сопротивлялись как могли наземные телефонные операторы.
Но в какой-то момент государство понимает - нужно что-то делать с этим развратом. И расщепляет монополии или принимает важные для прогресса регулирующие законы. Например, закон, позволяющий менять оператора с сохранением номера. Надеюсь, что будет принят и закон о сетевом нейтралитете, что запретит провайдерам и операторам искажать и давить трафик VoIP, IM и P2P сетей.
Пример демонополизации у меня перед глазами. Во Франции отделили компании, которые владеют инфраструктурой проводов в земле (France Telecom) от компаний, которые непосредственно обеспечивают и предоставляют услугу ADSL клиенту. В результате мгновенно возникшей бурной конкуренции и свободного рынка за 30 евро в месяц я имею 20-мегабитный интернет, 50 каналов телевидения, бесплатные звонки на всех наземных операторов по всей Европе и в США, бесплатные и безлимитные (!) звонки в Россию. Весь этот пакет целиком прекрасно окупается 30 еврами в месяц и провайдер не только не страдает, но получает огромную прибыль! Раньше же я платил повременно за звонки на стационарные телефоны внутри страны Франс Телекому и всякие теоретики на форумах утверждали, что такие цены оправданы. :)
Последний бастион дорогой связи - это мобильные операторы. Но скоро этот бастион падет, и мы получим дешевую повсеместную связь - это только вопрос времени. Кстати возвращаясь к SMS - своим партнерам многие операторы продают возможность посылать SMS намного дешевле, чем абонентам - я не могу раскрывать конкретные цифры, но они намного, намного ниже стоимости для абонентов.
Настало уже много лет назад для инженерных и IT-специальностей, для остальных - не в курсе.
Согласен - я излишне экспрессивен, но ничего с собой не могу поделать. :) Вообще язык был специально сделан для создания динамических сайтов, но любая современная практическая потребность (формы с автоподкидкой и всякими комбо-боксами, гибкое форматирование) - и имеем трах, разное поведение кода в разных браузерах, отсутствие стандартных функций для получения нужной информации, проблемы с таймерами и асинхронной работой... Наблюдал это со стороны и сочувствовал нашим программистам. Куча усилий квалифицированного персонала тратится непонятно на что или нужно подключать огромные frameworks, которые медленно грузятся, которые ГЛЮЧАТ сами по себе и код их приходится хачить под свои потребности тем же программистам. И в них течет память.
И пусть работает, я разве призываю всех выйти из browser-а?
Но если уж делать что-то новое, research какой-то в области языков, то зачем дальше городить новые наслоения? Предлагаю эту энергию пустить на разработку действительно свежих концепций. Например, функциональных языков. Или таких языков, которые позволят писать приложения автоматически разделяя работу между клиентом и сервером. Или на универсальные системы управления динамическим контентом без программирования. Сколько можно тянуть и нагромождать слой за слоем на старое, погрязая все глубже в дырах и концептуальных проколах прошлого.
Как же тогда операторы не умирают от бесплатных SMS, посылаемых с их же собственных бесплатных интернет-сайтов? :)
Что касается GPRS - многие операторы по всему миру специально блокируют или искажают трафик VoIP и IM через GPRS, чтобы не подрывать свои сверх-прибыли. Они понимают, что когда-то эта малина прикроется, но пока можно - сколачивают капиталы.
Ну ничего, обычные телефонисты уже доигрались со звонками в другие страны по 3$ за минуту - и мобильных тоже через пару лет реструктуризируют. :)
О да, закрытие определенного трафика - это как раз и есть 100% доказательство анти-рыночного характера деятельности операторов. Актуальнейшая тема, между прочим.
Сетевой нейтралитет
Кстати финальный аккорд, так сказать, против аргумента со стоимостью сигнального канала - чуть ли не все операторы за редким исключением "особо продвинутых" :) позволяют нам посылать SMS своим абонентам через их сайты в Интернете забесплатно. Хотя такая SMS-ка точно так же забивает сигнальный канал, точно так же нуждается в хранении когда телефон абонента выключен и еще в дополнение к обычной требует покупки софта/оборудования для шлюза между сервером сайта и их свитчами. Но как-то никого не утруждает. :)
Может быть и так, а может и быстрее. Несколько лет назад нам (кто работал в этой сфере) было очевидно, что наземные операторы завышают стоимость связи колоссальным образом и особенно чудовищно завышены цены на long distance call. Мы говорили об этом точно так же на форумах - никто не верил: парировали тем, что оператор, дескать, несет огромные расходы на поддержание инфраструктуры и его цены ОПРАВДАННЫЕ. Что я имею сегодня, ничего не меняя в этой самой инфраструктуре? На точно тех же медных проводах. Я имею БЕЗЛИМИТНЫЕ звонки на всех наземных операторов внутри страны и БЕЗЛИМИТНЫЕ БЕСПЛАТНЫЕ разговоры с США, всеми странами Европы и с Россией. 24 часа в сутки. За 30 евро в месяц абонентской платы. Что и требовалось доказать, как говорят математики.
Точно так же рухнут и цены мобильных операторов - вопрос только когда именно, как Вы верно заметили.
Почему 99.99% для пользователей не нужно делать настройки на конкретный компилятор в C? Почему там всегда так было с 80-х годов, когда язык был еще молод даже. Если не извращаться по-черному, то программа собиралась одинаково всеми компиляторами и работала одинаково, в рамках модели заданной языком, его стандарта.
Но в JavaScript мои коллеги на одной бывшей работе вынуждены были тратить изрядную часть рабочего времени на поиск, исследование и обход проблем интероперабельности в разных broweser-ах. Не так сложно им было писать сам код, как добиваться стабильной, одинаковой работы этого кода даже под основными ветвями browsers. Причем с той самой DOM у них было много траха.
Я думаю, что с самим языком есть какие-то проблемы, если каждая его реализация настолько уникальна в своих глюках и отступлениях от стандарта, что значительное время и огромное количество нервов программисты тратят на interoperability. Просто по факту.
Но возможно я не прав, "идея была хорошей", только ее плохо реализовали.
Чем же хорош сам JavaScript как язык программирования? Чем он выделяется на фоне других языков так, что Вы его прямо хвалите? Дайте пожалуйста конструктов, развернутый, а не одной короткой фразой.
Почему 99.99% для пользователей не нужно делать настройки на конкретный компилятор в C? Почему там всегда так было с 80-х годов, когда язык был еще молод даже. Если не извращаться по-черному, то программа собиралась одинаково всеми компиляторами и работала одинаково, в рамках модели заданной языком, его стандарта.
Но в JavaScript мои коллеги на одной бывшей работе вынуждены были тратить изрядную часть рабочего времени на поиск, исследование и обход проблем интероперабельности в разных broweser-ах. Не так сложно им было писать сам код, как добиваться стабильной, одинаковой работы этого кода даже под основными ветвями browsers. Причем с той самой DOM у них было много траха.
Я думаю, что с самим языком есть какие-то проблемы, если каждая его реализация настолько уникальна в своих глюках и отступлениях от стандарта, что значительное время и огромное количество нервов программисты тратят на interoperability. Просто по факту.
Но возможно я не прав, "идея была хорошей", только ее плохо реализовали.
Чем же хорош сам JavaScript как язык программирования? Чем он выделяется на фоне других языков так, что Вы его прямо хвалите? Дайте конструктов, пожалуйста развернутый, а не одной короткой фразой.
Люди, кто ставит мне минусы за этот комментарий и убавляет "карму": вы вообще понимаете, что такое сигнальный канал, что такое SMS, что такое codec и т.п.? На каком уровне Вы это понимаете? Продали CISCO в магазине? Сидите за стойкой в МТС и принимаете платежи? Подумайте об этом, прежде чем ставить свои минусы.
Достаточно отделить владельцев инфраструктуры вышек от тех, кто передает (пользуясь их оборудованием) данные - и цена ВСЕХ услуг упадет в разы. Точно так же, как упала цена на локальные звонки и на long distance call после появления VoIP. И точно так же, как резко упала цена на широкополосный доступ в тех странах, где его предоставляет НЕ владелец физических медных проводов, а другая компания. Причем резкое падение цены на мобильную связь - неизбежность, это просто вопрос времени. И произойдет это падение цены вовсе не из-за технического прогресса, а из-за демонополизации сектора.
Сигнальный канал это те же 64kbps, предположим (прикидочно!) что шапки/управляющие сообщения, возникающие при посылке SMS, занимают столько же, сколько полезные данные SMS в сумме. Получается, что в один сигнальный канал влезет ~850 сообщений в минуту. Хотите сказать, что у Вас в сетях один сигнальный канал на 850 голосовых каналов? Понятно, что для передачи сообщения не нужно аллоцировать B-канал, как для разговора. Но если станция способна потянуть определенное количество звонящих абонентов, она потянет и намного большее количество SMS-абонентов, что очевидно из расчетов. Учитывая, что реальный человек не посылает сообщение каждую минуту - действуют те же законы, что и при расчете интенсивности звонков.
Во-первых, в большинстве систем сигнальный канал не один, во-вторых, он ничем принципиально не отличается от B-канала, в-третьих его емкость взята с большим запасом. Что такое голосовой канал я прекрасно знаю. Как это влияет на мой расчет? Я же его окупаю с лихвой для оператора, когда плачу за него 10 центов за минуту прослушивания моего сообщения голосовой почты. И за емкость на сервере плачу и оператора это устраивает. А SMS понимае те ли для него "обходится намного дороже". Это лженаука. :)
Экономические выкладки очень простые - клиент платит, спрос определяет предложение, а оператору "очень деньги нужны". :) Пока эта сфера не демонополизирована - можно кататься как сыр в масле и делать деньги из воздуха.
Впрочем, я ничего не имею против капитализма, пока он подразумевает честную конкуренцию. :) Как только отделят владельцев несущей инфраструктуры от собственно сервис-провайдера - так сразу цены упадут колоссальным образом. Что можно видеть на примере наземных телефонных сетей, long distance call и в других областях.
Голосувую почту мою оператор хранит? Условно возьмем цену в 10 центов за минуту прослушивания голосовой почты. Пусть они хранят ее в GSM FR кодеке. Итого получается 13kbps * 60 / 8 bits = 97500 байтов на минуту хранения. Туда влезет 97500 / 280 = 348 SMS. Но за каждый SMS с меня возьмут 5 центов. Итого накрутка в 174 раза. Конечно цена пересылки сообщений по сигнальному каналу не равна нулю, но стремится к нему.
Пример: берем GSM FR, 13kbps. 13kbps = 97500 bytes per minute. 97500 / (140 * 2 байта Unicode) = 348 сообщений. Одна минута прослушивания voice mail условно стоит 10 центов. Один SMS - стоит 5 центов. Таким образом, мы переплачиваем в 174 раза. :)

Information

Rating
Does not participate
Date of birth
Registered
Activity