AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Проблема при работе с большими файлами (~ 5 Гб)
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 10, 2010 2:35 pm    Post subject: Reply with quote

Quote:
Но багом точно является тот факт, что АкелПад, не сумев открыть большой файл, ничем мне как пользователю не сообщил.
Версия какая? Версия 4.5.1 (от 2 декабря) начала отображать кучу сообщений об ошибках.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Goodvin



Joined: 08 Dec 2010
Posts: 15

PostPosted: Fri Dec 10, 2010 2:38 pm    Post subject: Reply with quote

FeyFre wrote:
Quote:
Но багом точно является тот факт, что АкелПад, не сумев открыть большой файл, ничем мне как пользователю не сообщил.
Версия какая? Версия 4.5.1 (от 2 декабря) начала отображать кучу сообщений об ошибках.
Именно 4.5.1
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 10, 2010 3:22 pm    Post subject: Reply with quote

Quote:
А чем может быть объяснено поведение программы, когда она показывает мне лишь часть файла и ничего не сообщает - ни ошибок, ни варнингов?
Ответ от меня или Инструктора: "в таком-то исходном файле, в такой-то строчке, с такой-то переменной, либо функцией делают так-то, что как оказалось неправильно" Вам что-нибудь даст? Да, это плохо что не говорит. Но нужны ли Вам аж такие детали, что Вы так настаиваете?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Fri Dec 10, 2010 7:29 pm    Post subject: Reply with quote

FeyFre wrote:
Ответ от меня или Инструктора: "в таком-то исходном файле, в такой-то строчке, с такой-то переменной, либо функцией делают так-то, что как оказалось неправильно" Вам что-нибудь даст? Да, это плохо что не говорит. Но нужны ли Вам аж такие детали, что Вы так настаиваете?
А Вы уже являетесь полноправным вторым разработчиком AkelPad'а?
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 10, 2010 8:43 pm    Post subject: Reply with quote

VladSh, нет, я являюсь человеком, который не хуже Инструктора знает WINAPI и достаточное время роется в кишках АкелПада, и может сделать элементарный анализ кода и найти ошибку. Этого достаточно что-бы иметь право выразить тут своё ИМХО в виде "в таком-то исходном файле, в такой-то строчке, с такой-то переменной, либо функцией делают так-то, что как оказалось неправильно". Для этого мне не нужно быть "полноправным вторым разработчиком AkelPad'а" не правда ли? Или может быть Вы против что-бы кто-то кроме Инструктора периодически ковырялся в Акеле, напарываясь на ошибки, которые Инструктор не поймал бы ещё очень долго, ибо что называется "код приелся"? У меня нету сомнений, что пока DV писал свои плагины, то наверное с десяток раз напарывался на непонятки, которые Инструктор потом исправлял(и они значились в релизах под грифом Исправлено).

И да, хватит постоянно подозревать меня в замашках на авторство и/или мессийство АкелПад. Мне есть что делать, есть где проявлять амбиции. Даже если бы я что-то аж так хотел от АкелПад-а и такое что не согласился бы делать Инструктор или это замечательное сообщество(или добавить сделанное мной), то я бы молча сделал бы это для себя(хватает знаний, и лицензия позволяет) и никто бы это не знал.
Если Вы не заметили, я написал ИЛИ, причем в вопросительном предложении. Что Вам там не понравилось?
Что я спросил у человека какой вид ответа его устроит? - Если человек посчитает это вопрос не корректным, он как-то сам об этом скажет(в крайнем случае попросит Инструктора пнуть меня административно)
Или то что я там написал "от меня или Инструктора" вместо "от Инструктора или кого-нибудь другого"? - Ну дык Инструктор там полноправно, а обнадеживать человека что кто-то ещё может(а не обязан) ответить на его вопрос я не имею права, могу только расписываться за себя.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Mon Dec 13, 2010 9:54 am    Post subject: Reply with quote

FeyFre
Никто не умаляет Ваших заслуг, и люди благодарны Вам за хорошие плаги.
Но Ваше поведение бывает иногда, мягко говоря, странным...

FeyFre wrote:
Ответ от меня или Инструктора
1. А другие не могут разбираться в коде и комментировать его, только Вы или Instructor?
2. Почему "или Инструктора"? Он уполномочил Вас отвечать за него?
Если Вы не являетесь одним из авторов, то это намёк на какие-то близкие отношения? Но зачем тогда об этом знать всем?
Или просто патологическая потребность отметиться в каждой теме?

Goodvin конкретно предложил (суть): "по возможности доработать прогу; при невозможности: поставить сообщение о том, что файл загружен или, что корректнее, - будет загружен, не полностью, и есть опасность его повредить при сохранении", всё это естественно для любой нормальной проги, Вы же начинаете развозить здесь блевотину:
FeyFre wrote:
Ответ от меня или Инструктора: "в таком-то исходном файле, в такой-то строчке, с такой-то переменной, либо функцией делают так-то, что как оказалось неправильно" Вам что-нибудь даст? Да, это плохо что не говорит. Но нужны ли Вам аж такие детали, что Вы так настаиваете?
К чему это всё?

Мы общаемся здесь достаточно давно, и мне уже не странно, что Вы не понимаете элементарной вещи, что 'каждый отвечает за себя', о которой говорят в детстве родители, которую в прямом смысле вбивают в армии.. И то, что с таким "стилем" общения Вам когда-нибудь отобьют голову на улице, - это Ваше личное дело..
Но здесь, на форуме, это напоминает героя мульта, который кричал "А мы уйдём на Север!" Это уже даже не смешно...
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 13, 2010 11:02 am    Post subject: Reply with quote

Quote:
1. А другие не могут разбираться в коде и комментировать его, только Вы или Instructor?
О познаниях остальных пользователей в всех кишках я судить не могу, зато логично предполагаю что Инструктор точно знает все кишки АкелПад-а, и себя туда вставил по причине того, что я знаю что я в случае крайней необходимости и хватки смогу добраться до сути. За остальных пользователей такое предполагать не имею права. И это не исключает возможность что есть ещё кто-то, кто может так ответить.
Quote:
2. Почему "или Инструктора"? Он уполномочил Вас отвечать за него?
А где я ответил за Инструктора? Я спросил о пользе заданной формы ответа, который могут пользователи, и привел список пользователей, которые его могут дать по моим субъективным оценкам вероятнее всего. Я спросил это потому-что в первую очередь мне нужен ответ на этот вопрос. Именно для этого вопросы и задают. Если Вам этот вопрос не понравился, или зацепил какие-то личные струны души - это не моя вина, но вопрос мне нужен был именно в такой форме. Ответ я выслушаю, поставлю птичку, сделаю выводы, какие выводы и относительно чего сделаете Вы, Инструктор, Вася Пупкин - дело совершенно третье, и для него обсуждения в случае необходимости я выделю ресурсы.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Mon Dec 13, 2010 12:48 pm    Post subject: Reply with quote

FeyFre wrote:
За остальных пользователей такое предполагать не имею права. И это не исключает возможность что есть ещё кто-то, кто может так ответить.
Исключает.
"от меня или Инструктора" это тоже самое, что "'от меня' OR 'Инструктора'".
C точки зрения логики правильнее было бы "От пользователей, которые разбираются в коде...".
С точки зрения того, что эти пользователи не делегировали Вам свои права отвечать или что-то предполагать за них, то правильно "Ответ от меня: ".
Но так, как человек задавал вопрос не просто пообщаться с хорошими и приятными людьми, а с реальной проблемой, т.е. он обращался к разработчикам, а значит Вам неправильно за-давать такие вопросо-ответы.

FeyFre wrote:
Я спросил это потому-что в первую очередь мне нужен ответ на этот вопрос. ...
но вопрос мне нужен был именно в такой форме. Ответ я выслушаю, поставлю птичку, сделаю выводы, ...
Во первых, Ваш вопрос не предполагает какого-то конкретного ответа (конкретно всё было описано выше). И ответ, какой бы он ни был, ничего не меняет.
Во вторых, 'этот вопрос нужен был именно Вам', 'где-то поставленная Вами птичка' и 'Ваши выводы' каким-то образом повлияют на то, чтобы Akel читал файлы 5 и более Гб? По всем страницам темы этого не скажешь.

По поводу варнинга. Прога либо либо должна выполнить команду, либо выдать сообщение о невозможности этого. Чего юлить? Это баг либо недоработка.
С выводом месседжа Instructor, IMHO, уж как-нибудь справится самостоятельно, без ответа на Ваш вопрос и без Ваших "птичек", иначе напишет об этом.
Back to top
View user's profile Send private message Visit poster's website
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Dec 13, 2010 1:55 pm    Post subject: Reply with quote

Ребята, мир! Smile Загвоздка в одной-единственной не очень удачной формулировке.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 13, 2010 4:37 pm    Post subject: Reply with quote

Quote:
Во первых, Ваш вопрос не предполагает какого-то конкретного ответа (конкретно всё было описано выше). И ответ, какой бы он ни был, ничего не меняет.
Предполагает. Как минимум два: "ДА", "НЕТ", остальные так или иначе производные от них.
Quote:
Во вторых, 'этот вопрос нужен был именно Вам', 'где-то поставленная Вами птичка' и 'Ваши выводы' каким-то образом повлияют на то, чтобы Akel читал файлы 5 и более Гб? По всем страницам темы этого не скажешь.
А Ваше замечание повлияет? Хотя бы на что-то: на 2ГБ-шный лимит текста, на частоту моих, так называемых, замашек на "А Вы уже являетесь полноправным вторым разработчиком AkelPad'а?" ?
Fr0sT wrote:
Ребята, мир! Smile Загвоздка в одной-единственной не очень удачной формулировке.
Которые, судя по высказыванию товарища VladSh, я делаю в каждом втором сообщении Smile
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Mon Dec 13, 2010 5:11 pm    Post subject: Reply with quote

Мне кажется, надо закончить все эти неконструктивные перепалки на том, что было бы неплохо, если бы AkelPad научился хотя бы предупреждать при открытии больших файлов, а лучше – умел нарезать их на части и работать с частями.
Ведь неплохо же, да?
А дальше остается только сочетание затрат на реализацию с получаемой пользой со стороны тех, кто может это сделать. Далее остается или расписывать пользу, или помогать реализовывать, или спонсировать материально. Very Happy

P.S. А что подумал Кролик, никто не узнал, потому что он был очень воспитанным. ©
Нет, правда, пора уже или помолчать, или тему сменить.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2040
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 13, 2010 5:19 pm    Post subject: Reply with quote

Quote:
а лучше – умел нарезать их на части и работать с частями.
Ну это точно не реально, ибо найдется какой нибудь скрипт напишет AkelPad.GetTextRange(0,-1) и все части придется поднять в память, и сразу же клонировать их.
Quote:
затрат на реализацию
Эти затраты можно будет охарактеризовать одним словом - Геморрой. WIN16 -> WIN32 тоже геморроем было, слава богу он нас мало коснулся. Laughing
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Mon Dec 13, 2010 7:31 pm    Post subject: Reply with quote

FeyFre wrote:
Ну это точно не реально, ибо найдется какой нибудь скрипт напишет AkelPad.GetTextRange(0,-1) и все части придется поднять в память, и сразу же клонировать их.
Я думаю, можно по такому случаю обойтись без скриптов и вывалить ошибку про недостаточно памяти или что-нибудь в этом духе. Все равно на работу интерпретатора скриптов с памятью мы не повлияем. (Пока не напишем свой. Very Happy)
Back to top
View user's profile Send private message Visit poster's website
opk44



Joined: 16 Jan 2010
Posts: 327

PostPosted: Tue Dec 21, 2010 12:46 pm    Post subject: Reply with quote

Размышлизмы.
История такова, что после горячих обсуждений в данной ветке на свет появилась тестовая x64 версия AkelPad.
Начну с тезиса о том, что перенос кода x32 на x64 это сложная работа, цель которой не вполне ясна.
Перенос кода на 64-битную платформу и сам-то не прост. Часть 32-битного кода оказывается, как правило, либо неработоспособной, либо, что еще хуже, работающей "неправильно".
Простейший пример - использование в 32-битном коде "волшебных констант" (типа 0xffffffff, 0x7fffffff, 0x80000000 в качестве максимальных/минимальных значений переменных либо битовых масок). Такой код может успешно компилироваться и на 64-битной платформе, но работать там неправильно. Или непосредственное использование типа DWORD, столь естественное для x32 кода, может привести (при операциях с указателями гарантированно приведёт) к очень противным багам в 64-битной версии, поскольку там адреса могут иметь больший чем DWORD размер. Вообще же количество только типичных проблем не ограничивается этими двумя, и может исчисляться десятками. Но поскольку сам я знаю о переносе кода x32 на x64 только понаслышке, то примеры - это иллюстрация тезиса для тех, кто возможно знает об этом ещё меньше.
Итак, предполагаемая цель переноса на x64 - заставить AkelPad обрабатывать "сверхбольшие" файлы.
Но замена платформы на x64 этой проблемы, как мне кажется, не решит. AkelPad пока устроен так, что теоретически может обрабатывать файлы не более половины размера установленной оперативной памяти (из расчета - 2 байта на символ). Здесь должен оговориться, что поставленный мной опыт был не вполне корректен, т.к. есть подозрения на некорректную работу с железом подсистемы памяти (используются 2 планки разных фирм и емкости 2Gb + 1Gb и в ряде случаев система работает "не замечая" 3-го Gb). Т.о. на моей машине AkelPad справляется с файлами порядка 500Mb, но файлы размером чуть более 1Gb (конкретно = 1,04Gb) ему уже не по зубам, и он атакует сообщениями о невозможности выделения достаточного количества памяти для окна. Подчеркну, что лимит на размер редактируемого файла определен не только теоретическим максимумом доступного адресного пространства (4GB), но еще и физическим размером оперативки. Это важно. И если напрямую перенести эту аналогию на x64, то будет очевидна очень низкая эффективность переноса текущего кода на x64. Может статься, что на x64 на машине с небольшим количеством оперативки (например, не 16Gb, как у Goodvin-а, а "всего только" 8Gb) пользователю все равно не удастся оперировать 5Gb-ным файлом.
Есть несколько вариантов.
Вариант 1 "a-la EmEditor".
EmEditor использует "memory mapped files" для загрузки больших файлов (файл загружается лишь частично). Для тех кому это интересно, но мало о чем говорит, вот ссылка (у кого тяжело с английским, смогут найти переводы на wasm.ru). После прочтения станет положительно понятно, почему подобный подход часто используется в разного рада viewer-ах, но не слишком часто в полноценных редакторах. Даже среди коммерческих редакторов "memory mapped files" используется не более чем 1/3 производителей (по мнению автора EmEditor-а). Значимый плюс - снятие ограничений на размер файла (само ограничение, конечно, никуда не девается, но лимит отодвигается уж очень далеко - в район ограничений самой файловой системы или жесткого диска) без изменения битности приложения (т.е. пользователи x32-систем получат такую возможность наравне с пользователями x64-систем). Минусы, впрочем, тоже не малые. Способ затратный. Ведь кроме переделок в самом редакторе наверное потребуется переделка и всех его плагинов. Следовательно, это будет уже "совсем другой" редактор.
Вариант 2 "продолжать в сторону x64".
Чтобы не повторять ранее сказанное, выражу своё отношение цитатой из Конька-Горбунка - "много много непокою принесёт оно с собою".
Вариант 3 "Wu Wei (недеяние)"
Да, да, именно. Оставить (пока) всё как есть и примириться с тем, что ограничения в физическом мире существуют. На AkelPad свет клином не сошелся и те ситуации, когда требуется редактирование ну ооочень больших файлов разрешать иными средствами.
Сама по себе, невозможность редактирования "сверхбольших" файлов - это ни хорошо ни плохо (особенно, когда все это "не у тебя" ;) ).
Для примера, Notepad++ с версии 5.2 и выше пошел именно таким путем. Перед открытием файла, проверяется его размер и если он больше "предельного", то Notepad++ даже не пытается его открыть, а просто сообщает, что "файл слишком велИк". Эмпирически я определил предельный размер файла около 300Mb. В wiki-справке Notepad++ причина объясняется тем, что используя компонент Scintilla и загружая весь файл целиком в память, оной памяти нужно примерно в 4 раза больше чем размер редактируемого файла, а иначе редактор падает (до версии NPP 5.2 на больших файлах).
Вариант 4 и т.д. ...
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5358

PostPosted: Wed Dec 22, 2010 5:21 pm    Post subject: Reply with quote

opk44
x64 версия дает возможность не упираться в ограничение 2Gb ОЗУ при наличии большого объема памяти. Так что как бы я не уходил от этого шага, понял, что его надо сделать.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3
Page 3 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group