The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компания Apple представила Swift 2.2, первый выпуск с поддер..., opennews (ok), 22-Мрт-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


4. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +6 +/
Сообщение от angra (ok), 22-Мрт-16, 09:11 
>Вместо сборщика мусора Objective-C в Swift используются средства подсчёта ссылок на объекты

Есть разные варианты сборки мусора. Один это mark'n'sweep, используемый в java или go. Другой это automatic reference count, используемый в perl, swift и ... objective-C. Но все это сборщики мусора. Кроме них есть ручное управление как в C или опять таки objective-C. В swift по сравнению с objective-C распространили ARC на всю среду исполнения, а не осуществили замену какого-то неизвестного GC на вариант ARC.

Ответить | Правка | Наверх | Cообщить модератору

11. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от Антонemail (??), 22-Мрт-16, 09:23 
Вы ошибаетесь, сборка мусора и подсчёт ссылок не только разные названия, но и различные идеологии и абсолютно разные реализации.
Почитайте получше про детерменированность сборки мусора, про поколения мусора, про кольцевые ссылки.
Ответить | Правка | Наверх | Cообщить модератору

13. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +2 +/
Сообщение от angra (ok), 22-Мрт-16, 09:57 
Вы удивитесь, но реализации отличаются даже в пределах одного основного вида. Есть разные алгоритмы mark'n'sweep(хотя здесь тоже есть путаница в названиях, например naive mark'n'sweep и просто tri-color marking) и разные алгоритмы ARC. И разница в реализации может в отдельных случаях давать разницу в скорости программы в несколько раз.
Про кольцевые ссылки и прочее я тоже в курсе. Как и в курсе про то, что многие называют Mark'n'Sweep вариант GC просто GC, противопоставляя ее ARC варианту GC. Также как некоторые называют винду просто ОС, противопоставляя ее линуксу.
Ответить | Правка | Наверх | Cообщить модератору

16. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +12 +/
Сообщение от ДяДя (?), 22-Мрт-16, 09:59 
Сборка мусора - это процесс избавления от ненужных объектов.
Подсчёт ссылок - это один из способов определить нужен данный объект или нет.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

65. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  –2 +/
Сообщение от Z (??), 22-Мрт-16, 17:38 
Вообще-то нет. При подсчете ссылок объект уничтожается сразу, как становится ненужным. Он не успевает стать мусором.

Сборка мусора подразумевает, что освободившиеся объекты остаются в памяти, в виде мусора. И позднее уничтожаются оптом. Таким образом при сборке мусора расход памяти увеличивается в разы (4-6) при сравнимом использовании CPU и алгоритмы различаются фундаментально. Утверждать, что подсчет ссылок - это особая форма сборки мусора, это как сказать, что ночь - это день, только чуть темнее, RISC это упрощенный CISC, а быстрая сортировка это оптимизированный пузырек. Для любого специалиста разница очевидна и она кардинальная.

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

Ответить | Правка | Наверх | Cообщить модератору

67. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +1 +/
Сообщение от анан (?), 22-Мрт-16, 17:58 
https://en.wikipedia.org/wiki/Reference_counting#Use_in_garb...
Ответить | Правка | Наверх | Cообщить модератору

74. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от angra (ok), 22-Мрт-16, 19:03 
> Сборка мусора подразумевает, что освободившиеся объекты остаются в памяти, в виде мусора.

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

> Таким образом при сборке мусора расход памяти увеличивается в разы (4-6) при сравнимом использовании CPU

Попробуй доказать это. Когда не справишся, сходи по этой ссылке http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
И сравни потребление памяти в swift с ARC и в Go c Mark'n'Sweep. Тебя ждет большой сюрприз.
Я бы конечно мог тебе много рассказать на тему накладных расходов в этих двух подходах, но боюсь материал не для такого "специалиста".

> Но, если ты не специалист, то да, можно любое освобождение памяти называть
> сборкой мусора, даже перемещение указателя стека при выходе из функции.

Про знания таких "специалистов" хорошо сказано в википедии:

Tracing garbage collection is the most common type of garbage collection, so much so that "garbage collection" often refers to tracing garbage collection, rather than other methods such as reference counting.

То бишь, как я и говорил выше, кому то и винда синоним ОС.


Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

99. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  –1 +/
Сообщение от _ (??), 23-Мрт-16, 17:03 
> Когда не справишся, сходи по этой ссылке http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...

Элиот скатился в СГ конечно, но всё же ...
Меня немного удивила скорострельность свифта. Понятно что им занимаются нехилые монстры но всё же ... или там в сырках мухлёж?
Если нет - то свифт таки начинает вынлядеть годным, раздери меня 1000 блондинок! :)

Ответить | Правка | Наверх | Cообщить модератору

103. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +2 +/
Сообщение от Аноним (-), 24-Мрт-16, 01:24 
> Меня немного удивила скорострельность свифта.

В половине тестов он продул да еще памяти больше слопал при этом. И вообще, vs JS? vs java? vs python? А си и плюсы где? С ними сравнивать ссыкуют?

Ответить | Правка | Наверх | Cообщить модератору

109. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от angra (ok), 24-Мрт-16, 10:33 
Интерфейс на том сайте конечно стал уродский, но неужели так сложно додуматься до манипуляции с url
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
Ответить | Правка | Наверх | Cообщить модератору

110. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от Аноним (-), 24-Мрт-16, 11:25 
хм, интересен конечно пример mandelbrot, где Swift опережает C и Rust
http://benchmarksgame.alioth.debian.org/u64q/program.php?tes...
Ответить | Правка | Наверх | Cообщить модератору

111. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +1 +/
Сообщение от Аноним (-), 24-Мрт-16, 11:45 
насколько понял, в коде mandelbrot примера, в свифте, используется  
https://github.com/apple/swift-corelibs-libdispatch
т.е *nix библиотека полностью на C.
Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

92. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от 61585 (?), 23-Мрт-16, 01:38 
> При подсчете ссылок объект уничтожается сразу, как становится ненужным.

В яблочном ARC это не так :)

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

33. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от adsasda (?), 22-Мрт-16, 13:40 
Сорри, но это бред ядерный... Ни кто вам в Swift'е не мешает сделать вот так:
val some = UnsafePointer(bitPattern: 0xb8000)
и работать с голой памятью. Как мне то же самое сделать в Java с ее GC? ;)
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

76. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  –1 +/
Сообщение от пвпвапвап (?), 22-Мрт-16, 19:07 
Профит?
Ответить | Правка | Наверх | Cообщить модератору

104. "Компания Apple представила Swift 2.2, первый выпуск с поддер..."  +/
Сообщение от Аноним (-), 24-Мрт-16, 01:25 
> Профит?

Профит в возможности писать всякие системные вещи, очевидно. С java это невозможно вообще никак, разве что через jni, если мазохизма много.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру