Почему функции высшего порядка медленные? - list vs sequence
Вставка
- Опубліковано 15 жов 2020
- Сегодня мы проведем эксперимент и попробуем разобраться - почему функции высшего порядка работают медленнее чем обычные циклы. Чем sequence отличается от list и как он помогает исправить проблему быстроты работы.
С вами Илья Никсан и мы учим язык программирования Kotlin с нуля для начинающих программистов
Если ты хочешь быстро научиться писать код на языке котлин то смело подписывайся и следи на новыми видео на канале
Про меня:
Меня зовут Илья, мне стукнуло 30 лет
С 20 лет я плотно занимаюсь программированием и всем что связано с айти. В 2010 году я начинал карьеру как Android разработчик в QIWI. За прошедшие 10 лет я побывал во многих ролях: от джуниор-программиста, был тимлидом, менеджером, техническим директором. Успел поработать на фрилансе, в студии разработки и даже в Яндексе.
Ссылки:
nixan.org/
/ nixan
/ nixan
Спасибо за полезные видео! Было бы еще круче, если комментировал каждое действие во время написания кода.
тогда это будет унылое. полезнее просто репозиторий с кодом себе сливать и экспериментировать
Спасибо, отличный канал и подача
Ведущий красавчик 😁
Жена красавчик
Спасибо огромное за Ваш труд, очень полезное видео. Жаль, что только сейчас наткнулся на него
Спасибо за видео! Мне кажется, что, раз уж начали сравнивать list и sequence, то нужно было бы затронуть вопрос о минусах использования sequence, они же по-любому есть)) Т.е. когда их использовать нецелесообразно/излишне/вредно для той же самой производительности, например, потребления памяти или ещё в чём-то. Ведь если бы они были идеальными, никто бы листы не юзал.. ;) Мануалы курить - by lazy))) Мб, в каком-нибудь из следующих видео коснёшься этого вопроса? А так - ок, хороший показательный простой пример, хорошие пояснения. Лайк))
супер круто, спасибо
Спасибо за отличное видео!
Посмотрев его, я стал чуточку умнее, а значит день прожит не зря)
Данка Шон :)
вижу Вы програмируете на Kotlin, подскажите его преимущества перед Java? может видос на эту тему созреет.
Видос обязательно созреет, но чтоб не томить, по большому счету это все вкусовщина и немножко лицензионных историй. Кароче лучше самому попробовать :)
@@SeemsNerdy обязательно в этом видео пройдитесь по замечаниям из статьи на хабре "Почему Kotlin отстой" :)
Не буду. Холивар надо обходить.
Интересно, что будет на rust или ranges C++?
Не совсем понятно, зачем такая сложность в обычных циклах. Ведь по сути у нас задача посчитать идут ли подряд 20 текстовых символов. Т.е. мы можем считывать файл посимвольно, и если это подходящий символ просто добавлять его в аккумулятор, если не подходящий - очищать аккумулятор и искать следующую последовательность. На условном псевдокоде:
reader = new LazyReader("File.txt");
while ((c = reader.read()) != EOF) {
if(c in list( " ", "
", "
" ) {
result.clear();
} else if (c not in list( ".", ",") {
result.add(c);
}
if ( result.length >= 20 ) {
break;
}
}
Вряд-ли это будет быстрее, т.к. считывать данные пачкой, гораздо производительнее, нежели посимвольно.
Код пишется в ритме стриптиза
Расслабься и получай удовольствие :)
Проблема всех "учителей" что они знают материал, но не умеют учить. А когда ученик плохой высокомерно сказать ты туй халявщик еще прожуй за тебя да в рот положи и в конце это не твое. В результате аудитории кое как разбирающихся 100чел а остальные 10000 желающих отсеиваются. Не понимают: что не понимают ученики, как это подать на чем акцент сделать, и как закрепить. Соответственно ты можешь быть супер разработчиком но плохим учителем. Учитель это тоже талант. Вот например говорите читайте даташит, хорошо открываю читаю - по мне это филькина грамота с малой информацией про тот же сиквенс, что он оказывается такой волшебник может не весь файл загружать. Я читая даташит могу лишь догадываться что может та или иная ф-ция, кое как применить, тем более в сочетании с др ф-ями. В результате тратится куча времени года на эксперименты додумки поиск пока вся эта хрень уляжется в голове, а потом нужно деньги на обучение брать и видя перед собой не радужную перспективу бросаешь свою первую любовь. Я чисто все додумками экспериментами познаю клочками там инфу выдергну то там тратя куча времени, и мечтаю что есть где то материал который все сгруппирует составит общую картину и зачем это нужно и правильно подаст. Сраные корутины нигде не видел толком как и где применять ту или иную да еще инфа противоречащая делаю вывод что сами писаки не полностью владеют материалом и приходится еще тратить время на фильтрацию. "Учителя" выражаются словами которые еще надо расшифровать и еще надо по ним пройтись по даташитам и это все накладывается в ободранный массив знаний ...........
Забудь, такого материала нет, все надо вкуривать самому всегда. А ну и да, никто не говорил что будет легко.
Блин, я не могу понять)) Почему половина разработчиков на андроид работают за маками? :) Есть же крутые виндовые ноуты.
Потому что macos - unix совместимая, винда пока нет, но бежит в эту сторону
@@SeemsNerdy а какие преимущества в этой совместимости?)