Медленнее всего происходит чтение из. Почему дети медленно читают? Способы и приёмы обучения быстрому чтению

Начиная с октября прошлого года в непосредственной близости от Кремля, в здании по адресу Моховая, 11, где располагается Институт Стран Азии и Африки, время от времени происходит нечто странное. Поздним вечером, несмотря на непогоду, выходные или праздничные дни, здесь собираются люди, зачастую даже не знакомые друг с другом, и вместе читают избранные тексты из Танаха или Талмуда. Медленно, по словам. Порой даже по буквам – сличая русский перевод с оригиналом и выявляя его, перевода, неточности и огрехи. Мини-циклы в формате «study group», организованные проектом «Эшколот» при поддержке фонда AVI CHAI, проходили в ИСАА уже пять раз и были посвящены «Дорожным рассказам» из Талмуда, Книге Ионы, Экклезиасту, Книге Эстер и Песни Песней. Слушатели (они же читатели) при содействии приглашенных экспертов - филологов, историков, религиоведов и философов - как будто заново прочитывали классические еврейские тексты, задаваясь вопросами, возникающими при таком углубленном чтении, и вместе искали на них ответы. О формате «study group» и методе «медленного чтения» рассказал корреспонденту «Букника» программный директор «Эшколот» Семен Парижский – филолог, преподаватель и специалист по ивриту и средневековой еврейской литературе.

Максим Эйдис: Откуда появилось название метода «медленное чтение»?

Семен Парижский: «Close reading» – стандартный термин из западноевропейской литературной критики, означающий внимательное, вдумчивое чтение классической литературы. Изучение шаг за шагом, анализ значения каждого образа, каждого слова. Мы придали этому термину новый оттенок, назвав его по-русски «медленное чтение» и поставив в контекст «slow food vs. fast food». «Медленное чтение» - отчасти антимодернистский жест: люди сегодня читают слишком быстро, утрачивая из-за этого «вкус» чтения. Наконец, наш метод апеллирует к древней еврейской практике мидраша, основанной на том, что с самыми важными вопросами мы обращаемся к базовым текстам и пытаемся добиться от них ответа. Для этого у евреев 2000 лет назад возникла особая техника чтения-допроса сакральных текстов - мидраш – и соответствующий институт: бейт-мидраш. Вот мы и хотим объединить в формате study group все три этих контекста: европейская литературная теория, антимодернистское «медленное чтение» и бейт-мидраш.

М.Э.: Для толкования, раскрытия смысла сакральных текстов в study group используется не только информация из других еврейских текстов, но результаты научных (например, археологических) исследований. Насколько это правомерно? Ведь Танах существовал внутри закрытой еврейской текстуальной культуры и не предполагал, наверное, дополнительных научных изысканий?

С.П.: Нет, уже в Средние века классические еврейские комментаторы (Раши, ибн Эзра и прочие) использовали филологические, исторические и другие научные методы. Танах – междисциплинарное явление, его нельзя рассматривать в рамках только одной дисциплины. И кроме того, современному читателю необходимо восстановление контекста, который для древнего читателя был попросту очевидным.

М.Э.: Кстати, о контексте. Какие-то фрагменты Книги Ионы, как я слышал во время study group, сегодня трактуются исследователями как ироничные или пародийные. Но ведь то, что кажется нам ироничным сейчас, совершенно не обязательно было таковым на момент создания книги. Или, например, в study group утверждалось, на основании 4 Цар 14:25, что Иона был не просто пророком, а «пророком-профессионалом» – человеком, который зарабатывал пророчествами на жизнь. Но ведь героем Книги Ионы мог быть какой-то другой Иона, разве нет? То есть здесь можно строить лишь теории, ничего не утверждая с точностью?

С.П.: Утверждать, что Иона в 4-й книге Царств и главный герой Книги Ионы разные люди, – умножение сущностей без надобности. Но, возможно, автор Книги Ионы (которая была написана позже 4-й книги Царств) сделал своим героем уже известного из истории пророка. Что же касается иронии и пародии, то они рассматриваются нами не исходя из современных представлений, а через анализ огромного массива пророческой литературы, жанрового анализа и сравнения. Хотя те эксперты, которые называли Книгу Ионы пародией, и не утверждали этого аподиктически. Скорее, поэтически.

М.Э.: И все же многие предположения, которые я услышал в study group, могут показаться надуманными. Может быть, под ними есть большой исследовательский базис, но в формате study group, видимо, нет возможности доказательно его раскрыть. Какой тогда смысл именно в таком формате? Можно же просто организовать цикл лекций, где рассказать собравшимся о неизвестном им контексте той или иной книги?

С.П.: При «медленном чтении» работает несколько иной доказательный механизм: он связан с убедительностью того или иного прочтения. Убедительность, как и в случае с риторикой, здесь связана с групповой динамикой и основана на формировании консенсуса и конвенций в конкретной группе читателей. Аргументация связана не столько с внешним научным дискурсом, сколько с аргументами в пользу того или иного толкования самого текста. И не стоит забывать, что close reading – чтение в группе, но с экспертом, который имеет определенные достижения в своей научной области.

М.Э.: Тогда почему эксперту просто не прочесть лекцию? Потому что это будет не так интересно?

С.П.: Потому что то, о чем говорит эксперт, должно ложиться в прочтение текста. Во время «медленного чтения» не текст иллюстрирует те или иные тезисы (как на лекции), а наоборот: логика разворачивания дискурса связана с процессом чтения текста.

М.Э.: Но ведь экспертов, наверное, много. Как я понял, идея о том, что Книга Ионы пародийна, отнюдь не признана всеми библеистами.

С.П.: Читатели могут сами решить, насколько убедительно такое толкование. Наша задача – дать максимально объемное и многослойное прочтение, чтобы оставить место для работы самого читателя. Ну и дать ему инструменты для дальнейшего погружения в текст: библиография, подходы и т.п. Еще мы следуем определенной диалектике части и целого, поэтому чередуем чтение по частям с концептуальными лекциями о книге в целом. Это известный герменевтический круг, когда часть можно понять только в контексте целого, но целое складывается только из частей.

М.Э.: На чем основан выбор той или иной книги для «медленного чтения»? Можно ли надеяться, что когда-нибудь в Москве пройдут study groups, на которых слушатели будут «медленно читать» Танах с самого начала?

С.П.: Мы выбираем книги, исходя из нескольких критериев.

Во-первых, тексты должны быть небольшими, чтобы их можно было прочитать целиком за обозримое время. Мы начали экспериментировать с переходом от разовых мероприятий к более регулярным занятиям, но такой переход может быть только постепенным. Мы не можем сейчас быть уверены, что люди станут ходить на study groups в течение, например, года, поэтому в текущем сезоне study groups состоят пока только из четырех занятий. В дальнейшем, возможно, мы увеличим длительность мини-циклов.

Во-вторых, для нас играет роль степень «классичности» книги. Мы стараемся выбирать книги, оказавшие определенное влияние на европейскую культуру, - Книга Ионы, Песнь песней, Экклезиаст. В Танахе есть маленькие книги, которые почти никто из людей, выросших в европейской культуре, не знает и не читает. Они для нас не приоритет.

В-третьих, как я уже говорил, «медленное чтение» невозможно в отсутствие экспертов. Поэтому при выборе книги мы руководствуемся и их наличием в пределах досягаемости. Что же касается вашего второго вопроса, то целиком Танах читать бессмысленно. Это же не книга, а библиотека.

М.Э.: И все-таки, что такое study group по сути - филология, история, религиоведение? Поможет ли знание того, внутри какой именно рыбы сидел Иона и каким образом персидский царь мог избавиться от неугодной жены, постижению глубинного смысла книги?

С.П.: Study group - междисциплинарный формат: это чтение классических книг через призму филологии, истории, этнографии, антропологии, религиоведения. Речь идет скорее не о постижении глубинного смысла книги, а о начале пути, о разведке, об овладении навыками и приобретении вкуса. То есть человек как бы ставит изучаемую книгу в раздел «прочитанное» на своей виртуальной книжной полке, и если ему захочется покопаться в этой книге еще – он будет знать, с какой стороны к ней подойти.

М.Э.: Метод close reading применялся в Западной Европе для светских текстов, в Москве же его применяют к текстам сакральным. Это первый такой эксперимент в наше время, или подобное сейчас делает кто-то еще в других странах - в Израиле, например?

С.П.: Библеистика в XX веке, особенно во второй его половине, уже вовсю использовала новейшие достижения литературной критики и теории (структурализм, гендерный анализ, http://en.wikipedia.org/wiki/Reader-response_criticism reader-response criticism и т.п.) Однако можно сказать, что да, таким методом книги Танаха читаются впервые на мини-циклах проекта «Эшколот». Во всяком случае, мы искали аналогичные случаи в российской практике, но не нашли.

И другие способы чтения:

Караульщикова Елена Андреевна
Учебное заведение: ГБПОУ МО «Электростальский колледж»
Краткое описание работы:

Дата публикации: 2017-03-12 Формирование читательской компетенции через методику медленного чтения Караульщикова Елена Андреевна Вхождение в мир культуры невозможно без осмысленного отношения к чтению как ведущему способу получения информации из текста. Значит, необходимо создать такую среду на уроке, где ученик будет постигать основы информационной, научной, творческой культуры через текстовую деятельность. Это утверждение и позволило сформулировать основную цель моей работы в данном направлении: воспитание личностного отношения к обучению в рамках конкретного урока через формирование читательской компетенции.

Просмотреть свитедельство о публикации

Формирование читательской компетенции через методику медленного чтения

Актуальность опыта

По мысли П.А. Флоренского, «культура есть среда, растящая и питающая личность » . Вхождение в мир культуры невозможно без осмысленного отношения к чтению как ведущему способу получения информации из текста. Значит, необходимо создать такую среду на уроке, где ученик будет постигать основы информационной, научной, творческой культуры через текстовую деятельность. Это утверждение и позволило сформулировать основную цель моей работы в данном направлении: воспитание личностного отношения к обучению в рамках конкретного урока через формирование читательской компетенции.

Для реализации данной цели необходимо выполнение следующих задач :

    Выработать привычку к осмысленному чтению через организацию текстовой деятельности на уроке (алгоритм «медленного чтения»);

    совершенствовать навыки анализа и интерпретации через выразительное чтение текста (приём «секундомер для чтения»);

    формировать читательскую компетенцию через решение филологических задач (лабораторная работа по тексту).

Текстовая деятельность, являясь катализатором мыслительной и творческой деятельности, становится основой для формирования читательской компетенции. Её использование определяет форму, структуру урока, выбор технологий. На моих уроках такой технологией чаще всего становится технология проблемно-диалогового обучения.

Существующие подходы к методике медленного чтения.

Текстовая деятельность на моих уроках начинается с выработки привычки к осмысленному чтению как необходимому условию вхождения в мир информационной культуры. А формирование читательской компетенции невозможно без решения проблем адекватного понимания текста.

Совершенствовать такое умение у учащихся помогает использование элементов герменевтического по содержанию подхода в обучении (авторы Г.И.Богин, И.Р.Гальперин). Центром урока становится толкование текста с помощью методики медленного чтения. Существует множество подходов к реализации данной методики, но я опиралась на самые известные, среди которых чтение «под лингвистическим микроскопом» (Н. М. Шанский), структурный анализ текста художественного произведения (Ю. М. Лотман), «первочтение» и «перечтение» (М. Л. Гаспаров), работа со смысловыми «скважинами» (И. Р. Гальперин), процедурная «цепочка понимания» (В. М. Букатов).

Алгоритм работы по методике медленного чтения.

В результате интерпретации и применения данных подходов на уроках у меня выстроился алгоритм работы по методике медленного чтения:

1) выявление языковых особенностей текста, т.е. выполнение аналитических упражнений по тексту (результат – «обживание» текста);

2) поиск «странностей» и формулирование вопросов (итог –возникновение смысловых связей, смысл «из ничего»);

3) комментирование (поиск ответов на поставленные вопросы);

4) сопоставление интерпретаций (уточнение смысла);

5) привлечение мнения экспертов относительно выбранного для анализа текста.

Представленный алгоритм обеспечивает сочетание аналитической и интерпретационной деятельности, что приводит к созданию на уроке естественной коммуникативной среды, перерастающей в диалог с текстом и друг с другом. Результатом такого смыслового обмена становится возникновение нового творческого продукта: концепции текста; системы вопросов по тексту; текста как результата распредмечивающего понимания (т.е. собственного текста на основании прочитанного).

Формирование навыков выразительного чтения и тренировка памяти и внимания через приёмы медленного чтения.

Используя методику медленного чтения на своих уроках, я заметила, что она помогает работать и над выразительным чтением художественных текстов. Здесь можно вспомнить приём «Секундомер для чтения», формирующий умение «проживать» текст, чтение которого замедляется за счёт продуманной самим учеником системы пауз, осмысленной расстановки логических ударений, интонационного выделения наиболее значимых частей текста.

Методика медленного чтения может стать и основой для тренировки памяти и внимания (мнемоническое упражнение «Очень медленное чтение» — один раз внимательно читаем небольшой текст, затем закрываем книгу и отвечаем на вопросы, связанные с содержанием и композицией текста). Также медленное чтение может являться средством диагностики, выявляющим затруднения некоторых учеников при интерпретации текста.

Филологические задачи как особая форма текстовой деятельности.

Читательская компетенция формируется и в ходе работы над филологическими задачами, решение которых является особой формой текстовой деятельности (автор идеи и многих задач доктор психологических наук, профессор, Генриетта Григорьевна Граник и её соавторы — С.М.Бондаренко, Л.А.Концевая, С.А.Шаповал).

Филологические задачи основаны на психологических законах понимания и восприятия текста, и решение таких задач нацелено на формирование этих механизмов. Такие задачи строятся по принципу избыточности или недостаточности текстовой информации.

Преимущество филологических задач состоит в следующем:

1) механизмы восприятия формируются на доступных для обозрения примерах (объектом исследования становятся тексты небольшого объёма). Ребёнок учится понимать текст, находясь как бы в «лабораторных условиях»;

2) для решения филологических задач выбираются тексты высокой смысловой насыщенности («точечные контексты»);

3) пополняются «фоновые знания» и «культурный код» читателя, т.к для анализа часто берутся тексты «не из школьной программы»;

4) формируется привычка профессионального читателя – «возвращаться к уже прочитанному» (Ю.М.Лотман);

5) такие задачи нацелены на формирование регулятивных, познавательных, коммуникативных и личностных результатов (самоопределение и смыслообразование).

Виды филологических задач

Можно выделить следующие виды филологических задач:

    восстановление текста по фрагменту, фразе, предложению;

    отделение одной информации от другой в смешанном тексте;

    прогнозирование концовки текста;

    работа с заголовком текста;

    заполнение «смысловых скважин» текста (анализ реминисценций, аллюзий, цитаций, художественных деталей и т.п.)

Использование филологических задач на различных этапах деятельности

Решение филологических задач я использую и как самостоятельный этап урока (в начале урока как разминку, как способ подведения к проблеме), и как основной элемент урока — анализ текста. Домашнее задание, сформулированное в виде такой задачи, сразу же становится творческим. Эффективно использовать такие задачи при проведении учебных диалогов, на уроках-дискуссиях , на которых ребята учатся высказывать свои позиции, создавать гипотезы, возникшие на основе решения задачи, корректировать их в процессе взаимодействия с другими. И ещё – учащиеся начинают сами создавать филологические задачи. А это уже творческий компонент работы с информацией.

Решение филологических задач я использую и как элемент подготовки одарённых учащихся к предметным олимпиадам.

Вывод

Читательская деятельность поистине универсальна, она объединяет людей различных поколений, мировоззренческих установок, формирует «культурный код», без которого невозможно адекватное понимание и интерпретация любого текста, а тем более художественного. Привычка к чтению является основой формирования личностного отношения к образованию, к жизни, становится необходимым условием готовности к диалогу позиций, точек зрения, культур. Это путь от смысла текста к смыслу жизни.

Список литературы:

1.Бахтин М.М. Проблема текста в лингвистике, филологии и других гуманитарных науках. Опыт философского анализа. // Литературно-критические статьи. М., 2010.

2.Богин Г.И. Типология понимания текста. // Учебное пособие. Калинин, КГУ, 1986.

3. О стихах. М. Языки русской культуры, 1997

4.Граник Г.Г., Бондаренко С.М., Концевая Л.А. Когда книга учит. М., 2007.

5.Граник Г.Г. Литература: Задачник-практикум для 8–11-х кл. / Сер. «Учимся понимать художественный текст» / Г.Г. Граник, Л.А. Концевая, С.М. Бондаренко, С.А. Шаповал. М., 2001.

6. Шаповал С.А. Понимание текстов как результат решения учебных филологических задач: автореф. дисс. на соискание степени канд. психол. наук / С.А. Шаповал. М., 2006.

Приложение №1

Решение филологической задачи по сказке С.Кржижановского «Три сестры».

Очень часто нам в жизни при небольшом объёме информации надо сделать правильный прогноз. Это умение и помогают формировать данная филологическая задача.

Условие задачи:

Спрогнозируйте продолжение текста по его первому предложению. Для того чтобы это сделать, мы должны расшифровать смысл каждого слова в этом предложении:

Они работали, как всегда, втроём

Решение задачи – лабораторная работа по тексту

Они – какие-то существа (возможно, люди). Работали – выполняли какую-то деятельность. Втроём – выполняли какую-то деятельность сообща, это невозможно сделать в одиночку, возможно, эта деятельность состоит из трёх операций, и чтобы был результат, каждый выполняет свою функцию. Как всегда – изо дня в день, долгое время, монотонно, возможно, механически.

Итак, обобщим наши гипотезы: какие-то существа (возможно, люди), выполняют какую-то деятельность сообща, т.к. выполнять её в одиночку нельзя. Предположим, что для достижения результата этой деятельности необходимо выполнение трёх операций. Деятельность осуществляется изо дня в день, монотонно, долгое время.

Это наш прогноз. А каков правильный ответ?

Перед вами отрывок из рассказа «Три сестры» Сигизмунда Кржижановского (цикл «Сказки для вундеркиндов»):

Они работали, как всегда, втроём. Клото, Лахезис, Атропос. Через их тридцать пальцев проходили человеческие судьбы. Клото аккуратно ссучивала нити дней. Лахезис протягивала их вдоль мерки годов. Атропос ждала с раскрытыми ножницами, лезвия их смыкались — и недожитые концы жизней падали вниз, в корзину из тростника, сорванного у берегов Леты.

И действительно, мы оказались во многом правы – слаженная монотонная вечная работа трёх сестёр состоит из трёх операций, в результате которой появляется, проходит и заканчивается человеческая жизнь.

Вы читали текст медленно? Вы запомнили главную информацию в тексте? Тогда продолжаем наше движение от малого к большому:

Как-то случилось, что одна из сестёр сказала:

— Милые парки, давайте, так, ради шутки, поменяемся местами. Ну хоть на одну жизнь.

Сёстры согласились. Атропос пересела на место Клото, Клото, тронув локтем Лахезис, смеющуюся шутке, заставила её чуть подвинуться на опустевшее место Атропос.

И сёстры принялись за работу .

Проверьте себя (карточка №1б)

Прокомментируйте таблицу.

Обобщите результат: из-за нарушения последовательности операций произошёл системный сбой, который приведёт к неизвестному результату. За короткий промежуток времени невозможно научиться чему-то, значит, сёстры на чужом месте будут делать то, что делали и раньше.

Поверим, верны ли наши догадки : Атропос отрезала коротким защелком своих ножниц новую жизнь от всех ей предшествующих. Клото, не умевшая тянуть нить, но искусная сучильщица, сделала так, что жизнь у неё получилась короткой, но свитой из множества нитей. А Лахезис, знавшая лишь как протягивать нить, когда дело дошло до смерти, всё тянула и тянула свою руку в вечность.

Мы с удовлетворением замечаем, что сделали верный прогноз. Но текст, как и любая система, обладает признаком завершённости. У него есть финал . Вот он:

Затем сёстры, смеясь, снова расселись по привычным местам и продолжали свою работу парок.

Что же случилось в этот день?

Но есть предание, что в этот день в мир пришёл…

Ваши варианты?

Появился человек. Что мы знаем о нём?

— Рождение его прерывает нить поколений.

— У него короткая, но «свитая из множества нитей» жизнь (проживает за одну жизнь несколько)

— И жизнь эта тянется в бесконечность, она оставляет след навсегда.

Он – гений, незапрограммированный, нестандартный человек.

Проверим:

Но есть предание, что в этот день в мир пришёл гений.)

Наш прогноз оказался верным. От малого мы пришли к большому – смыслу текста. Но и это не окончательный результат. Смысл текста стал отправной точкой для поисков смысла жизни, себя, себя в жизни.

Карточка №1 а

Сёстры

привычной операции

функции

непривычной операции

Клото

Лахезис

Антропос

Продолжительность

деятельности

«Как всегда»

«На одну жизнь»

результат

неизвестен

Карточка №1 б

Сёстры

привычной операции

функции

непривычной операции

Клото

прядёт нить жизни

Лахезис

тянет нить жизни

Антропос

отрезает нить жизни

Продолжительность

деятельности

«Как всегда»

«На одну жизнь»

результат

рождение, жизнь и смерть человека

неизвестен

, . .

Лучшей конструкцией было бы:

$ /usr/bin/time program_to_benchmark < big_file

В этом выражении это оболочка, которая открывает файл big_file, передавая его в вашу программу (ну, собственно, на «время», которое затем выполняет вашу программу как подпроцесс) как уже открытый файловый дескриптор. 100% чтения файла строго зависит от программы, которую вы пытаетесь сравнить. Это дает вам реальное представление о его производительности без ложных осложнений.

Я упомянул два возможных, но на самом деле неправильных «исправления», которые также можно было бы рассмотреть (но я «их» по-разному, поскольку это не то, что было неправильно в исходном сообщении):

О. Вы можете «исправить» это по времени только своей программой:

$ cat big_file | /usr/bin/time program_to_benchmark

B. или по времени для всего трубопровода:

$ /usr/bin/time sh -c "cat big_file | program_to_benchmark"

Они ошибочны по тем же причинам, что и # 2: они все еще используют `cat` без необходимости. Я упоминаю их по нескольким причинам:

    они более «естественны» для людей, которые не совсем устраивают объекты перенаправления ввода-вывода оболочки POSIX

    могут быть случаи, когда требуется «кошка» (например: для чтения файла требуется какая-то привилегия для доступа, и вы не хотите предоставлять эту привилегию программе для сравнения: `sudo cat / dev / sda | / usr / bin / time my_compression_test –no-output`)

    на практике , на современных машинах, добавленный «кот» в трубопроводе, вероятно, не имеет реальных последствий

Но я говорю это последнее с некоторым колебанием. Если мы рассмотрим последний результат в «Редактировании 5» –

$ /usr/bin/time cat temp_big_file | wc -l 0.01user 1.34system 0:01.83elapsed 74%CPU ...

– это утверждает, что «кошка» потребляла 74% ЦП во время теста; и действительно 1,34 / 1,83 составляет около 74%. Возможно, запуск:

$ /usr/bin/time wc -l < temp_big_file

потребовалось бы всего лишь 0,49 секунды! Вероятно, нет: «cat» здесь должен был заплатить за системные вызовы read () (или эквивалентные), которые перенесли файл с «диска» (фактически буферный кеш), а также на запись в канале, чтобы доставить их на `wc`. Правильный тест все равно должен был бы выполнять эти вызовы read (); только вызовы write-to-pipe и read-from-pipe были бы сохранены, и они должны быть довольно дешевыми.

Тем не менее, я предсказываю, что вы сможете измерить разницу между `cat file | wc -l` и `wc -l <файл` и найдите заметную (2-значную процентную) разницу. Каждый из более медленных тестов будет платить аналогичное наказание в абсолютном времени; который, однако, будет составлять меньшую часть его большего общего времени.

На самом деле, я сделал несколько быстрых тестов с файлом мусора размером 1,5 гигабайта в системе Linux 3.13 (Ubuntu 14.04), получив эти результаты (это, на самом деле, «лучшие из 3» результатов, конечно, после правильного кэширования):

$ time wc -l < /tmp/junk real 0.280s user 0.156s sys 0.124s (total cpu 0.280s) $ time cat /tmp/junk | wc -l real 0.407s user 0.157s sys 0.618s (total cpu 0.775s) $ time sh -c "cat /tmp/junk | wc -l" real 0.411s user 0.118s sys 0.660s (total cpu 0.778s)

Обратите внимание, что результаты двух конвейеров утверждают, что они потребовали больше времени процессора (пользователь + sys), чем в реальном времени. Это связано с тем, что я использую встроенную команду «время» оболочки (Bash), которая понимает конвейер; и я на многоядерной машине, где отдельные процессы в конвейере могут использовать отдельные ядра, накапливая время процессора быстрее, чем в реальном времени. Используя / usr / bin / time, я вижу меньшее время процессора, чем в реальном времени, – показывая, что он может использовать только один элемент конвейера, переданный ему в командной строке. Кроме того, вывод оболочки дает миллисекунды, в то время как / usr / bin / time дает только hundreths секунды.

Таким образом, на уровне эффективности `wc -l`,` cat` имеет огромное значение: 409/283 = 1.453 или 45.3% больше в реальном времени, а 775/280 = 2,768 или колоссальный 177% больше используемого ЦП! На моем случайном ящике-есть-в-время-тест.

Я должен добавить, что существует по меньшей мере еще одно существенное различие между этими стилями тестирования, и я не могу сказать, является ли это выгодой или недостатком; вы должны сами решить это:

Когда вы запускаете `cat big_file | / usr / bin / time my_program`, ваша программа получает входные данные из канала, точно в темпе, отправленном `cat`, и в кусках, не больших, чем написано` cat`.

Когда вы запускаете `/ usr / bin / time my_program или, во многих случаях, библиотеки ввода-вывода языка, на котором она была написана, может принимать различные действия при представлении файлового дескриптора, ссылающегося на обычный файл. Он может использовать mmap (2) для сопоставления входного файла в его адресное пространство, вместо использования явных системных вызовов read (2). Эти различия могут иметь гораздо больший эффект на результаты теста, чем небольшие затраты на запуск двоичного кода `cat`.

Конечно, это интересный результат теста, если одна и та же программа выполняет существенно разные отношения между этими двумя случаями. Это показывает, что, действительно, программа или библиотеки ввода-вывода делают что-то интересное, например, используя mmap (). Поэтому на практике может быть полезно запустить тесты в обоих направлениях; возможно, дисконтируя результат `cat` каким-то небольшим фактором, чтобы« простить »стоимость запуска самой« кошки ».

Getline, stream operatoes, scanf, могут быть удобными, если вам не важно время загрузки файлов или загрузка небольших текстовых файлов … но если производительность – это то, о чем вы заботитесь, вы должны просто просто загрузить весь файл в память (при условии, что он подойдет). Вот пример:

//open file in binary mode std::fstream file(filename, std::ios::in|::std::ios::binary); if(!file) return NULL; //read the size... file.seekg(0, std::ios::end); size_t length = (size_t)file.tellg(); file.seekg(0, std::ios::beg); //read into memory buffer, then close it. char *filebuf = new char; file.read(filebuf, length); filebuf = "\0"; //make it null-terminated file.close();

Если вы хотите, вы можете обернуть поток вокруг этого буфера для более удобного доступа, например:

Std::istrstream header(&buffer, length);

Кроме того, если вы контролируете файл, рассмотрите возможность использования плоского двоичного формата данных вместо текста. Это более надёжно читать и писать, потому что вам не нужно иметь дело со всеми двусмысленностями пробелов. Он также меньше и намного быстрее разбирается.

Кстати, причина, по которой количество строк для версии C ++ больше, чем число для версии Python, заключается в том, что флаг eof устанавливается только тогда, когда делается попытка прочитать за пределами eof. Таким образом, правильный цикл будет:

While (cin) { getline(cin, input_line); if (!cin.eof()) line_count++; };

В вашем втором примере (с scanf ()) причина, по которой это еще медленнее, может быть вызвана тем, что scanf («% s») анализирует строку и ищет любой пробел (пробел, табуляция, новая строка).

Кроме того, да, CPython делает некоторое кэширование, чтобы избежать чтения жесткого диска.

Первый элемент ответа: медленный. Проклятье медленно. Я получаю огромное повышение производительности с помощью scanf как scanf ниже, но он все еще в два раза медленнее, чем Python.

#include #include #include using namespace std; int main() { char buffer; long line_count = 0; time_t start = time(NULL); int sec; int lps; int read = 1; while(read > 0) { read = scanf("%s", buffer); line_count++; }; sec = (int) time(NULL) - start; line_count--; cerr << "Saw " << line_count << " lines in " << sec << " seconds." ; if (sec > 0) { lps = line_count / sec; cerr << " Crunch speed: " << lps << endl; } else cerr << endl; return 0; }

Следующий код был быстрее для меня, чем другой код, размещенный здесь до сих пор: (Visual Studio 2013, 64-битный, 500 МБ файл с длиной строки равномерно в }

Статьи по теме: