Кодирование, сравнение, раскодирование файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 31.05.2008 (Сб) 20:47

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

Гы. А собрать тогда файл как? Не проще прочитать все в массив, определить размер (Если он всего один килобайт то и делить нужно на разные размеры по сравнению с гиговым фалом), "Верх" файла кидаем в одну часть, ставим "виртуальную метку", что этот файл первый, а "нижнюю" часть во второй файл, ставим и там метку. Вроде так. Ну мне так кажется по крайней мере.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 31.05.2008 (Сб) 21:47

Забавен тот факт, что как AlexManiac, так и сам old761 почему то видят только байтовое чтение и файл-маппинг, и пытаются выбирать между этими двумя вариантами.

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

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

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

Опять же, пропаганда и поощрение боязни и нежелания использовать API-функции -- во вред программисту. Всякий программист должен понимать, что единственным способом взаимодействия программы с системой является вызов API-функций.

Программа, не использующая API-функций не сможет ни получить, ни вывести никакой информации из себя.

Поэтому, писать программы на VB и не использовать API-функции у вас не получится - они так или иначе будут использованы. Другое дело, что вы можете дойти из пункта А сразу в пункт Б, а можете между делом посетить ещё дофига левых промежуточных пунктов.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.06.2008 (Вс) 1:36

AlexManiac писал(а):я не отстаиваю чтение кусками(в текущем контексте)... прошу прощения, в моем первом предложении в этой ветке вот такой код:
Код: Выделить всё
' Здесь действительно был код, читающий не побайтно, а одним махом

Циклов не видно :) Читаем внимательно, балансируем между точностью и сомолюбием ;)

Кроме твоего первого сообщения, было ещё и второе, почти полностью противоречещее первому. Обычно, когда два каких-то утверждения противоречат друг-другу, актуальным считается последнее. Например, если по новостям объявляют, что пострадало 6 человек, а потом говорят, что пострадавших нет, следует считать, что их-таки нет и первоначальная информация была ошибочной. По этой причине, утверждения твоего второго постинга override-ят утверждения первого. Поэтому на первое сообщения я даже не смотрю.

Второе, - наиболее актуальное сообщение -, содержит такую интересную мысль: ты говоришь, что ты согласен с Antonariy. Ты говоришь это после того, как мы с Antonariy начали спорить.

Напомню тебе, что я посоветовал автору отказаться от побайтового чтения в пользу одноразового, мотивируя это тем, что побайтовому чтению не место в обучающем примере.

Antonariy выступил против этого совета, и назвал мой аргумент бессмысленным.

Итак, в споре:
Моя позиция - побайтовому чтению не место в примере.
Позиция Antonariy - побайтовое чтение допустимо в примере.

Учитывая позицию Antonariy и то, что ты говоришь "я вот тоже Antonariy поддерживаю" я могу сделать только один напрашивающийся вывод: твоя позция совпадает с позицией Antonariy - т.е ты также допускаешь побайтовое чтение в примере.

Поскольку ни я нигде не призывал использовать файл-маппинги в примере, ни Antonariy не говорил мне "Эй, Хакер, да ты не прав, предалагая в примере использовать файл-маппинги" -- я просто не могу считать, что говоря "я вот тоже Antonariy поддерживаю" ты имел ввиду что-то отличное от "Даёшь побайтовое чтение!" (а чем-то отличным от этого могло бы быть наприме "Согласен с Antonariy - долой файл-маппинги" -- но ведь нет, о них и не спорили).

Итак, разобрались, твоя позиция: побайтовое чтение допустимо в примере.

После того, как ты говоришь, что согласен с Antonariy, ты высказываешь некоторое противопоставление:
если человек пишет на VB, значит файл-маппинг изучать ему точно лишнее, иначе писал бы на чем-то, слоем ближе к API.

в котором опять упоминаются файл-маппинги.

Кажется очевидно, что ты пытаешься сказать "Нет, Хакер, ни к чему файл-маппинги; Antonariy прав", что по сути эквавалентно "Нет, Хакер, ни к чему файл-маппинги; побайтовое чтение допустимо в обучающем примере".

Т.е. ты противопоставляешь две крайности: оптимальный маппинг и невероятно тупое побайтовое чтение. Золотую середину (чтение с помощью Get, но за один раз) ты почему-то рассматривать не хочешь и не видишь.

Или видишь? И именно её имеешь в виду? Пожалуй нет, иначе фразы "я вот тоже Antonariy поддерживаю" не было бы, ибо Antonariy против этой золотой середины, а я -- за. Была бы фраза "поддерживаю Хакера". Но т.к. её нет, вариант исключается.

После этого, на моё "как AlexManiac, так и сам old761 почему то видят только байтовое чтение и файл-маппинг, и пытаются выбирать между этими двумя вариантами. " ты не имеешь права возражать.


Если судить идеалистически, то само наличие MSVBVMxx.DLL говорит о том, что Билли всю свою жизнь мечтал свое детище абстрагировать от системных вызовов, начиная с самых первых версий басика.


А по моему - совсем не говорит. То что там VM а не RTL, - так это только потому что людям жалко было из библы вырезать офигительный псевдокодовый движок. Да и смысла урезать фичастость не было.

Можно было конечно отделить RTL от VM, но тогда было бы две библиотеки. Сейчас библиотека одна, но встречаются, хмм... бараны, которые в своих "умных" статьях пишут, что программы на VB требуют для своей работы чуть-ли не десяток различных библиотек (записывая в этот список даже какие-то там ADO* и DAO* библы). И это при том, что библиотека всего одна. Что было бы, если бы их стало две - страшно представить.




Мне кажется, в .NET это ему удалось.

Мне, опять же, не кажется. Я согласен по этому поводу со статьёй.

И сам VB проектировался как нечто платформ-независимое.

Откуда такое предположение?

Я сам сторонник "пошалить" в том месте (в той среде), которая для этого не предназначена.

Неправильное восприятие в том, что ты считаешь это шалостью. Вызов WinAPI-функции - это вещь (в системе Windows) чуть-ли не самая естественная, какая-только может быть.

Но согласитесь, изначально VB не предназначался для прямых вызовов API, не так ли ?

Что значит прямой вызов API? Чем он отличается от непрямого?
Или имеется в виду "прямое использование" и "неявное использование" (тогда так и надо писать, ибо вызов и использование - разные вещи).

ЗЫ:то же можно сказать про ассемблерные вставки в коде VB. конечно, сделать можно, но стоит ли на этом ставить ударение, типа "если вы такие ламеры что не можете сделать naked функцию в ВБ, значит учиться программить вообще не стоит" ??

Я скажу вот что. MS не сделала возможности делать inline-asm-вставки, не хотела делать возможность использовать API-функции, не сделала поддержку указателей, не сделала возможность делать на VB обычные DLL (а я эту возможность нагло вернул, загубив весь замысел MS) потому что они придерживались концепции "безопасного программирования". Такого программирования, когда даже самый глупый программист, напиши он неимоверно кривой код, не сможет вызвать аварийную ситуацию, которую нельзя обработать. Имея асм, имея указатели - сделать что-то не то достаточно легко. Попробуйте написать на чистом VB что-то, что вызвало бы крах... И DLL -- так же: в случае не совпадения версий могут возникнуть совершенно не отлавливаемые и фатальные ошибки. Так что дело в принципе "безопасного программирования". И кросс-платформенность здесь не причём.

Новые веяния нам показывают, что наборы API меняются быстрее , чем кошки рожаются. Штампуются новые процессоры, каждый производитель в них [Хакер] :: Здесь был мат. Криптованый. Криптованый мат также запрещён правилами как хочет, от того кучи неясных сервис паков на базовые наборы API - как грибы после дождя.

Во-первых, у процессоров есть архитектура. И это не фиг собачий, и все процессоры с одинаковой архитектуры принципиально одинаковы. Как был, например, у x86-шных опкодов SIB, так он никуда и не делся.

Во-вторых, я не совсем понял, какая связь между выпуском процессоров и API. По моему, прямой связи нет. Вон, WinAPI уже сколько лет не меняется? Не меняется, -- я не говорю что оно не расширяется, оно, разумеется, расширяется - добавляются новые и новые функции, но ведь уже имеющиеся кардинально не меняется. Как было 10 лет назад у CreateProcess() 10 параметров, так оно и сейчас есть, и ещё 10 лет, вероятно будет. Причём здесь изменения, которые происходят с процессорами?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 10:20

AlexManiac
А все таки, возможно услышать развитие теории о кластерах и кратных чтениях? В частности, ответы на два, заданных разными людьми, вопроса?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.06.2008 (Вс) 10:30

ЗЫ: а ссылки на маты делать можно ??
или проиндексировать маты на каком-то ресурсе, а потом тут просто индексы указывать ?
... щас ресурс создам


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

при чем тут статья к кроссплатформенности ? я не все слово в слово перечитал конечно, но ...

Статью я имел ввиду не в опровержение идеи кросплатформенности .NET. Ты называешь Visual Basic .NET удачным развитием (т.е. продолжением) линейки VB1 - VB6. Вот об этом и статья.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 17:45

ОК, вместо цитат переформулирую вопросы.
1) Почему чтение блоков кратных размеру кластера быстрее?
2) Почему чтение блоков, размер которых 32Кб быстрее, чем чтение блоков размером 36 Кб или 20 Кб(оба этих числа кратны 4 Кб)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 01.06.2008 (Вс) 18:26

гы.. а если у вас файл не килобайт, а гигабайт ?

Ну да, впринципе прально. Тогда так.
1. узнаем размер файла
2. вычисляем на какие части будем делить (например по 3 МБ)
3. вычисляем сколько в один кусок входит частей по 4Кб
4. записывем последовательно через цикл маленькими кусками сначала один файл (Ставим метку что он первый в начале файла), пока размер не достигнет 3Мб, потом другой (Ставим метку что он второй).

Собиратель будет сначала читать первую строку и анализировать какая это часть - первая или вторая. А потом объединять....
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.06.2008 (Вс) 19:10

строчкукода которая читает 10 гиг в буфер памяти

10 гиг нельзя прочитать одной строчкой, потому как буфер такого размера не может быть создан в памяти.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 19:27

(как говорил хакер) чем меньше мы сделаем вызовов для достижения результата - тем лучше. (с той лишь поправкой, что надо всегда зреть в корень и иметь в виду - если мы напишем 1 строчкукода которая читает 10 гиг в буфер памяти, то это не значит что операций стало меньше.. их стало еще больше Smile ). от сего мы пытаемся (часто инстинктивно) лавировать между способом чтения побайтового и чтения всего и сразу, пытаясь найти оптимум.
Проясним ситуацию.
Я спрашиваю, откуда взялось число 32 Кб, я не спрашиваю, что мы пытаемся.
Программирование это не игра в куклы вуду - нельзя назвать какоето число и перейти на абстрактные материи, когда просят это число объяснить.
Теперь вкратце про первый абзац.
наиболее частоиспользуемым (по моему опыту) фреймом оптимизации есть 4кб, 32кб, 64кб.
По какому опыту?
поэтому с целью оптимальности, нам можно сразу читать 512 байт и не мучать оптимизатор.
Прости, мы на одну и ту же тему беседуем? Положим ты убедил меня что не стоит читать кусками меньше 512 байт. Но я про что спрашивал?

Если все твои дальнейшие аргументы будут в стиле "как хорошо использовать блочную передачу а не побайтовую" вместо "я считаю число N оптимальным потому что"(где N это 32 и 4 кб, а не чтото еще), то лучше просто отметь этот факт и я выскажу свое резюме на этот счет.
Последний раз редактировалось ANDLL 01.06.2008 (Вс) 19:30, всего редактировалось 1 раз.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 20:10

спаривающий в корне выбор блока 32кб, то приводите
Угу, я померял время чтения двухгигового файла блоками по 32, 36 и 20 Кбайт и увидел одинаковые цифры на своем компьютере с windows vista, sata винчестером и нормальными драйверами.
И я даже могу рассказать почему, если конечно вам, друг мой, это интересно :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 21:38

не могу понять к чему такой интерес к моей персоне ???
Нельзя понять то чего нет
1) Расскажите почему постояльцам, поделитесь опытом с другими
Я на форуме дольше и интересы постояльцев знаю лучше.
2) модераторы, считайте. после счета прошу поступить с моим аккаунтом по всей строгости правил
За мат твой ник появится в топике который некоторые читают, но который никому не интересен. Так что забей, я и сам в этом списке записан :)
У ВАС(именно ВАС! я Вам не "ты"), уважаемый ANDLL, непреодолимое желание * мне мозги, тем самым удовлетворив чувство собственного достоинства?
Отнюдь, это все твоя раздражительность. Простите, тут чаще говорят на "ты"
* еще настенными часами замер сделайте! тогда система 486 и Р4 будут равными.. "зачем платить больше"
В институте ты прогуливал лабы по физике. Или у тебя их не было. Предваряя вопрос, это к делу не относится, просто замечание.
Нет - * писать кучу *
Мы по разному это воспринимаем, я вот не считаю свои слова *ей кучей *ма, а тебе они вероятно таковыми показались?
Нашли ли Вы неточности или ГРУБЕЙШИЕ ошибки в моих предположениях/изложениях?
Одну неточность нашел, как мне кажется, но тебе придется успокоится, что бы выслушать ее.
Если у Вас изначально есть убеждение в том, что я не прав
Ее нет
* меня *
Есть теория, что если все слова в фразе следует "запикать" то и фраза не несет смысла. В твоей фразе осталось слово "меня", так вот, нет, именно тебя я не пытаюсь
Ибо наша цель помочь человеку спрашивающему
Не в малейшей степени. Моя цель была освятить некий отдаленный от темы аспект и может быть услышать чтото новое. Не думайте, ради бога, что это интересно автору темы. Это интересно мне, поэтому я об этом пишу. Если выяснится что прав ты, а не я, то это будет даже здорово, потому что тогда мои несчастья не окажутся напрасными(мои несчастья заключаются в том, что я отвлекаюсь на форум от воскресной игры в доту и воскресного просмотра house md).
я этого не заметил
Как мы уже отметили, не заметил ты этого, потому что этого и нет
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 01.06.2008 (Вс) 22:17

ANDLL
Как мы уже отметили, не заметил ты этого, потому что этого и нет

Относилось к фразе
Ибо наша цель помочь человеку спрашивающему. я этого не заметил

Где логика. Форум для программистов на VB где не могут помочь, потому что этого нет?

А вообще в спорах раждается истина. По крайней мере я точно могу сказать, что за короткое время AlexManiac набрал достаточно нефлудовых постов (В отличие от меня от незнания и Хакера наоборот, от знания). Такие люди форуму нужны. Ибо он неоспоримо имеет знания, даже если они где-то не правильны. Он стремится помочь и ответить, в отличие от многих иных (Не примите к себе!).
10 гиг нельзя прочитать одной строчкой, потому как буфер такого размера не может быть создан в памяти.

Это кто сказал. Если ты не создавал, не зарекайся. Это возможно. Гипатетически.....
Пишите жизнь на чистовик.....переписать не удастся.....

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.06.2008 (Вс) 22:52

Форум для программистов на VB где не могут помочь
Не могут помочь? Автору топика что, никто не помог? И ему не разжевали вопрос до состояния корма птенца скворца одного дня от роду?
Поясню то что ты не понял - вопрос автора был полностью раскрыт, и я просто перешел на интересную мне тему.
Это кто сказал. Если ты не создавал, не зарекайся. Это возможно. Гипатетически.....
В программе написанной на VB 6 (а мы про какойто еще язык?) это не возможно и гипотетически. С другой стороны, в 64-разрядной системе, в программе, которая скомпилирована 64-разрядным компилятором, это возможно практически, без гипотез
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.06.2008 (Вс) 23:21

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

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

Такие люди форуму нужны. Ибо он неоспоримо имеет знания, даже если они где-то не правильны. Он стремится помочь и ответить, в отличие от многих иных (Не примите к себе!).

Ага, в соседнем топике он мелет неимоверную чушь. Новичкам, вроде тебя, неочевидно, что это чушь. Вам это кажется помощью.

Это кто сказал. Если ты не создавал, не зарекайся. Это возможно. Гипатетически.....

Это сказал здравый смысл и трезвый ум и содержащиеся в нём знания.

Они (знания) говорят, что в АП процесса не найдётся свободных 10 гб места под буфер. Да что там говорить, там даже под 2гб буффер места не найдётся. Потому что оставшиеся в АП 2гб места фрагментированы загруженными туда модулями, стеками, кучами.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 02.06.2008 (Пн) 0:41

Спокойнее не будет. Нам, по больше части, плевать на цифры в пост-каунтере. Нам не плевать, однако же, на поведение тех личностей, которые стремятся эти цифры завысить. Нам не плевать на три постинга в стиле "Чё, никто не знает ответа что-ли?", которые можно наблюдать в этойтеме. На которую собственно и указывали те люди, которые обращались ко мне в асю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 02.06.2008 (Пн) 12:23

Так вот, о маленькой неточности.
Было отмечено совершенно верных два факта. И одновременно эти верные факты были неверно восприняты.
1) Чтение блоков кратных размеру кластера быстрее, чем чтение блоков не кратных размеру кластера
2) Чтение больших кусков быстрее, чем чтение коротких
Это все верно. Но из этого не следует главного - не следует, что нужно читать файл кусками кратными размеру кластера, и уж тем более помноженному на 8.
Почему чтение целого кластера быстрее, чем чтение двух половинок разных кластеров? Видите ли, в памяти компьютера есть некоторая карта(которая изначально хранится на носителе, и при открытии файла переносится в физическую память) и чтение лишнего кластера хуже тем(и только тем), что происходит лишнее чтение из этой карты. Это чтение несомненно занимает время.
Но в этой теории есть маленькая деталь. Она в том, что эта карта УЖЕ находится в физической памяти, когда вы делаете хотя бы второе чтение. В файловой системе NTFS такая карта представляет собой б+ дерево. Поиск в таком дереве это буквально десяток инструкций процессора. В файловой системе FAT это связанный список. Поиск в нем дольше, но тем не менее, это чтения из физической памяти.
Если ктото еще не догадался поясняю - основное время, которое тратится при чтении большого файла вовсе не на поиск записи в карте. Не на системный вызов. И даже не на прохождение через всякие там NtReadFile и прочая.
Основное время тратится на операции с носителем. Эти операции проводятся программами(драйверами) которые ничего(совсем ничего) не знают ни про кластеры, ни про б+ деревья, ни про чтото еще.
Однако, эти программы знают то, что для них наиболее важно - они знают характеристики оборудования. Они знают, какими блоками и как быстрее считывать информацию с винчестера той марки, которая засунута в компьютер. Вы пытаетесь эмпирическим путем(фантазированием) придумать, как бы им работать лучше. Проблема в том, что они и так это знают. Если ты читаешь блок в 16 Кб, а лучше прочитать блок в 32, то они прочитают 32 Кб. И когда ты в следующий раз попросишь вторые 16 Кб, они вернут его, не обращаясь к устройству. А значит очень_быстро.
Иными словами, вывод примерно такой.
Если ты читаешь 1 байт, то фактически все, на что тратится время это как раз "софтварная шелуха", такая как оболочки для операторов Get, всякие там системные вызовы и тп. Когда ты читаешь 1 байт, ReadFile работает быстрее чем оператор Get, а вызов непосредственно через sysenter работает быстрее чем вызов ReadFile.
Если ты читаешь большой(и совершенно не важный чему кратный) кусок данных, то скорость у оператора Get такая же, как у файлового маппинга, такая же, как у ReadFile, такая же, как и при NtReadFile.

Это очень полезный урок на тему "почему нельзя пропускать физлабы в институте". Изучение свойств всяких там газов, диодов, трифиллярный подвесов очень хорошо учит не только природе газов, диодов и трифиллярный подвесов, но и показывает, на что стоит обращать внимание при изучении проблем, а на что - нет.

В частности, в этой теме следовало обращать больше внимание на техническую сторону вопроса, а вовсе не на то, какое внимание уделилось твоей персоне ;)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 02.06.2008 (Пн) 20:47

Ага, в соседнем топике он мелет неимоверную чушь. Новичкам, вроде тебя, неочевидно, что это чушь. Вам это кажется помощью.

Согласен, но помоему тысяча вопросов до полного выяснения обстаятельства, пока автор топика не скажет что ему нужно только тем языком, который тебе понятен. Это тоже не правильно. Это касается Хакера. да, неоспоримо ты дашь верный ответ, но что для этого надо сделать. Миллион раз уточнить, переспросить. порой и спрашивать то не хочется. Причем следующая читата:
Ага, в соседнем топике он мелет неимоверную чушь. Новичкам, вроде тебя, неочевидно, что это чушь. Вам это кажется помощью.

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

Может быть. А ты можешь не просто тупо сказать что я не прав, а хотябы направить на то где сказано что-то, что оспаривает меня. А уж точно хорошо, если сам объяснишь. Это (для меня лично) будет полезнее. Иначе зачем мне учиться чму-то....

Ежели будет так спокойнее - со всей официальностью прошу написать скрипт, очищающий счетчик моих постов на 0... али в ручную, как будет угодно.

Это тоже понты. Никому не наплевать на свои посты, с интересом наблюдая звездочки вверку аватары. Даже ради интереса. Хотя сколько бы мне не был иногда неприятен Хакер он все же всегда может наставить на истинны путь. И я если честно ему доверяю, а впервый раз я ему доверился, когда увидел количество постов, а уже потом по качеству ответа..
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 02.06.2008 (Пн) 21:54

Согласен, но помоему тысяча вопросов до полного выяснения обстаятельства, пока автор топика не скажет что ему нужно только тем языком, который тебе понятен. Это тоже не правильно. Это касается Хакера. да, неоспоримо ты дашь верный ответ, но что для этого надо сделать. Миллион раз уточнить, переспросить. порой и спрашивать то не хочется. Причем следующая читата:

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

Для меня сейчас явилось полной неожидонностью то, что такая модель ведения топика (не понял какой-то момент - уточнил - разобрался) кого-то не устраивает.

Доказать что это чушь не значит сказать об этом автору, а предоставить верные, неоспоримые данные.

К сожалению я не смог понять смысл этого предложения.

Это сказал здравый смысл и трезвый ум и содержащиеся в нём знания.

Может быть. А ты можешь не просто тупо сказать что я не прав, а хотябы направить на то где сказано что-то, что оспаривает меня. А уж точно хорошо, если сам объяснишь. Это (для меня лично) будет полезнее. Иначе зачем мне учиться чму-то....

Либо у меня видения, либо у тебя избирательная невнимательность. :roll:
После процитированной тобой фразы "Это сказал здравый ..." идёт следующее предложение:
Потому что оставшиеся в АП 2гб места фрагментированы загруженными туда модулями, стеками, кучами.
в котором я объясняю (ты ведь этого хотел? чтобы я объяснил?) почему это невозможно. Какие претензии ко мне?

Кроме того, я не исключаю, что бывают действительно ситуации, когда я говорю, что, скажем, так-то сделать невозможно и не объясняю почему. В этих случаях я, опять же, полагаюсь на модель (недопонял - спросил - уяснил). Вы увидели, что я вам сказал, что так нельзя сделать. Вам непонятно, почему именно нельзя? Ну так спросите. Что вы думаете? Что я буду раздражен вашим вопросом? Нет, напротив.


Это тоже понты. Никому не наплевать на свои посты, с интересом наблюдая звездочки вверку аватары. Даже ради интереса. Хотя сколько бы мне не был иногда неприятен Хакер он все же всегда может наставить на истинны путь. И я если честно ему доверяю, а впервый раз я ему доверился, когда увидел количество постов, а уже потом по качеству ответа..

Ты не понял главной мысли. Когда я сказал "нам плевать на число сообщений", я имел ввиду не то, что оно вообще безралично всем тут (хотя многим действительно безразлично, они это признают). Имелось в виду совсем другое.

Поскольку речь шла о накрутке счётчика сообщений (как о наказуемом деянии), то слово "плевать" относилось именно к этому аспекту. А именно: нами возбраняется накрутка сообщений не потому, что в результате неё повышается число в профиле (типа мы боимся, что нас обгонят), а потому, что обычно способы, которыми добиваются увеличения числа, мягко говоря, вредят форуму.

Поисковые системы банят сайты за тёмное SEO не потому, что боятся, что эти сайты обгонят кого-то там по своему ТИЦ, а потому, что подобная практика только вредит поиску в целом - в итоге находятся не действительно полезные ресурсы, а всякая гадость.

И когда AlexManiac предложил сбросить ему счётчик сообщений, я потому и сказал "нам на него плевать" -- потому что не в счётчике дело. Мы лучше оставим счётчик нетронутым и удалим те гадостные сообщения, которыми он был накручен, чем обнулим счётчик, и оставим гадость висеть.

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

Есть правила, и их нужно соблюдать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 03.06.2008 (Вт) 22:18

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


Либо у меня видения, либо у тебя избирательная невнимательность

Ты не понял главной мысли,.....Поисковые системы банят сайты за тёмное SEO не потому, что боятся, что эти сайты обгонят кого-то там по своему ТИЦ, а потому, что подобная практика только вредит поиску в целом - в итоге находятся не действительно полезные ресурсы, а всякая гадость.

Хакер Извени. Я был не прав в твою сторону.
Пишите жизнь на чистовик.....переписать не удастся.....

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 04.06.2008 (Ср) 1:55

Холивар в рабочем разделе, развязанный модераторами-администраторами, его чтения на середине второй страницы мне хватило... как не стыдно :P

[Отчасти по теме поста, которая никому уже не интересна]
Почем никто не предлагает для порционного чтения не AS BINARY, а специально предназначенный для порционного чтения AS RANDOM LEN=bytes%
Разве код не сократится? Мне скорее для себя интересно.
Я не отстаиваю побайтовое или порционное чтение в данном контексте, потому что я вообще уже утратил контекст в данной теме.

[offtop]
Хакер писал(а):Во-вторых:
AlexManiac писал(а):Xakep абсолютно прав, предлагая файлы, проецируемые в память.

AlexManiac писал(а):да я вот тоже Antonariy поддерживаю, просто не хотел "вступать в споры"
если человек пишет на VB, значит файл-маппинг изучать ему точно лишнее, иначе писал бы на чем-то, слоем ближе к API.

LOL. Синдром Wolfie, однако.

Хакер, не понял, что ты мне продиагностировал, пока меня тут не было? Однако приятно, что тебя не забывают. Не желание убить кучу времени ради изучения сложной узконаправленой информации для решения элементарной задачи с целью ускорения выполнения программы на ничтожно малую величину или ради абстрактных идеалов программиста ценой потери читаемости и понимаемости кода? :lol: Ну тогда, батенька, у Вас синдром Хакера, с желанием проделывать вышеописанное.
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 04.06.2008 (Ср) 1:59

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

Нет, не это.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 04.06.2008 (Ср) 2:00

Виноват, тогда не уловил иронию.
А что насчет RANDOM ?
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.06.2008 (Ср) 7:31

Wolfie писал(а):Виноват, тогда не уловил иронию.
А что насчет RANDOM ?
В данном контексте режим Random совершенно не в тему.
Весь мир матрица, а мы в нем потоки байтов!

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 80

    TopList