Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];
ВнизПара слов о кэшировании данных при чтении и смартпойнтерах Найти похожие ветки
← →
Rouse_ © (2014-11-14 20:49) [0]Как обычно - вычитка. Статья завершена и если нет претензий по материалу или изложению будет опубликована на следующией неделе.
http://rouse-debug.blogspot.ru/2014/11/blog-post.html
← →
MBo © (2014-11-14 21:31) [1]Ну ты монстр. Тут листать замучаешься ;)
До слов "Тогда перейдем ко второй части :)" поправил, шлю на почту. Форматирование сбилось при взятии из html, но думаю, помеченные опечатки нетрудно соотнести будет.
Пойдет в таком виде?
← →
Rouse_ © (2014-11-14 21:47) [2]Да, спасибо, в опенофисе все правики видны - завтра займусь :)
← →
Rouse_ © (2014-11-14 21:53) [3]Кстати а наш движок подсветки на таком вот ошибется или нет?
TSharedPtr = record
public
class function Create<T: class>(AObj: T): TSharedPtr<T>; static; inline;
end;
...
class function TSharedPtr.Create<T>(AObj: T): TSharedPtr<T>;
begin
Result.FPtr := TObjectDestroyer.Create(AObj);
end;
← →
Rouse_ © (2014-11-14 21:54) [4]Во блин, не ошибся... значит у меня в блоге старый вариант, надо бы заменить...
← →
Rouse_ © (2014-11-14 21:55) [5]А то на моем вот такие артефакты вылазят:
TSharedPtr = record
public
class function Create<t: class="">(AObj: T): TSharedPtr<t>; static; inline;
end;
...
class function TSharedPtr.Create<t>(AObj: T): TSharedPtr<t>;
begin
Result.FPtr := TObjectDestroyer.Create(AObj);
end;
</t></t></t></t:>
← →
MBo © (2014-11-14 22:14) [6]Окончание ушло
← →
Rouse_ © (2014-11-14 22:24) [7]Получил, спасибо, щас перелопачу, пока время есть...
← →
полвторого © (2014-11-14 22:33) [8]Во-первых, "зупустим" полоснуло по глазам бритвой.
Во-вторых, разве windows поступает не так же, как и unix-совместимые ОС, читая файлы блоками, кратными объему страницы памяти - и которые можно после открытия файла просто попросить у системы замапить в наше адресное пространство?
В-третьих, читаю далее =)
← →
полвторого © (2014-11-14 22:38) [9]"через чур" - тоже фтопку.
← →
Rouse_ © (2014-11-14 22:41) [10]А ты точно уверен что вот тут нужно тире?
> Ну конечно прямо вот в таком виде это сделать не получится
> без мемлика - ну нет у нас сборщика мусора и прочего (вот
> тут) но не торопитесь говорить
← →
Rouse_ © (2014-11-14 22:44) [11]
> Во-первых, "зупустим" полоснуло по глазам бритвой.
Поправил.
> Во-вторых, разве windows поступает не так же, как и unix-
> совместимые ОС, читая файлы блоками, кратными объему страницы
> памяти - и которые можно после открытия файла просто попросить
> у системы замапить в наше адресное пространство?
Windows - да :)
> "через чур" - тоже фтопку.
фикс
← →
полвторого © (2014-11-14 22:50) [12]"кукой-нибудь"
"проксик (нужен дефис) то мы напишем"
Ну и да, "буфер" и все однокоренные слова принято транслитерировать с одной Ф.
← →
MBo © (2014-11-14 22:54) [13]>А ты точно уверен что вот тут нужно тире?
Это необязательно
← →
Rouse_ © (2014-11-14 23:21) [14]Ффух, вроде перелопатил :)
← →
полвторого © (2014-11-14 23:28) [15]"всеравно"
"все-же"
"в прочем"
"мозжечком (дефис) то"
"не привычно"
Пунктуация тоже, увы, хромает на все три целых четырнадцать сотых ноги, но на нее указывать, сидючи в Сети с "весла" и тыкая в экранную клавиатуру, лучше не стану. Просто подчеркну, что коряг в ней куча.
← →
Rouse_ © (2014-11-14 23:38) [16]
> полвторого © (14.11.14 23:28) [15]
> Пунктуация тоже, увы, хромает на все три целых четырнадцать
> сотых ноги,
Дык поэтому и выкидываю статьи на вычитку, ни ни разу я не Лермонтов, как был троишником - так и остался :)
ЗЫ: завтра поправлю по [15], бо упарился уже в очередной раз вычитывать :)
← →
DVM © (2014-11-14 23:54) [17]
> Rouse_ ©
в делфи кстати в модуле Soap.EncdDecd находится аналогичный твоему TOnMemoryStream - TPointerStream, только он там не public
← →
DVM © (2014-11-14 23:58) [18]Move(Buffer, Pointer(Longint(Memory) + Position)^, Count);
тут косяк, нехорошо приводить указатель к 4 байтовому числу
← →
Rouse_ © (2014-11-15 00:10) [19]
> DVM © (14.11.14 23:54) [17]
В курсе, он по этому и сидит под имплементацией, в противном случая из-за разрешенного Write таких делов натворить можно :)
> Move(Buffer, Pointer(Longint(Memory) + Position)^, Count);
Ну... не переведен у нас проект на 64 битную совместимость :)
У меня половина ядра защиты на асме нафигачена, поэтому даже не паримся пока что :)
Если делать - так делать глобально.
← →
Eraser © (2014-11-15 00:43) [20]
> Rouse_ © (14.11.14 20:49)
еще штук 5-10 таких статей и можно публиковать книгу. будет одна из лучших в своем роде.
← →
Rouse_ © (2014-11-15 01:58) [21]Да вот еще, я ж не Фленов :) Хотя таки да, уже 27-я статейка по счету получется, практически маленькая методичка
← →
Германн © (2014-11-15 02:13) [22]
> Rouse_ © (14.11.14 22:41) [10]
>
> А ты точно уверен что вот тут нужно тире?
>
Не только не нужно, но и противопоказано.
Чересчур пишется слитно.
← →
картман © (2014-11-15 11:10) [23]
> Rouse_ © (15.11.14 01:58) [21]
> Да вот еще, я ж не Фленов
а потому назвать "Введение в основы Дельфи"))
← →
Inovet © (2014-11-15 12:15) [24]Во, а я как-то и не заметил эту тему.
← →
Rouse_ © (2014-11-18 18:23) [25]Ну вроде победил, всем спасибо за вычитку.
Релиз: http://alexander-bagel.blogspot.ru/2014/11/store.html
← →
junglecat © (2014-11-19 10:02) [26]> [25] Rouse_ © (18.11.14 18:23)
что бросилось в глаза в плане грамотности
Врятли я открою секрет => вряд ли
опять-же => опять же
тот-же => тот же
коментария, изпользуя - спишем на очепятки
не избежны - слитно
Ну и запятых кое-где не хватает, но это фиг с ним, и так нормально
← →
han_malign © (2014-11-19 17:32) [27]
> > Move(Buffer, Pointer(Longint(Memory) + Position)^, Count);
>
>
> Ну... не переведен у нас проект на 64 битную совместимость
> :)
Move(Buffer, (PAnsiChar(Memory) + Position)^, Count)
← →
Rouse_ © (2014-11-19 19:25) [28]
> han_malign © (19.11.14 17:32) [27]
Так то оно - да, но по хорошему, этого мало, если уж делать - так делать полностью :)
← →
han_malign © (2014-11-20 09:15) [29]
> этого мало
- начинать надо c малого...
И если уж приводить - то к дженерику - integer/cardinal, раз уж LONG_PTR не определен...
До меня на старости лет наконец дошло - зачем в С++ придумали все эти некрасивые static_cast, reinterpret_cast, dynamic_cast (а теперь еще и const_cast)...
← →
Rouse_ © (2014-11-20 19:54) [30]
> han_malign © (20.11.14 09:15) [29]
> До меня на старости лет наконец дошло - зачем в С++ придумали
> все эти некрасивые static_cast, reinterpret_cast, dynamic_cast
> (а теперь еще и const_cast)...
Была бы беда, у меня ягартовский компилер неверный код генерит при работе с double (под ARM), в отличие от gcc или дефолтового мастдайного - та еще засада, с учетом того что тестировать результат компиляции можно только по результатом выхлопа "железного ключа (Guardant CODE)", а на дебажных сборках без "железяки" все фунциклирует на ура :)
← →
jack128 © (2014-11-20 20:10) [31]
> И если уж приводить - то к дженерику - integer/cardinal
sizeof(integer) = 4 на x64, так что это бы не помогло.
← →
Ellisium © (2014-11-20 20:32) [32]
> sizeof(integer) = 4 на x64
почему?!
← →
Rouse_ © (2014-11-20 21:09) [33]
> Ellisium © (20.11.14 20:32) [32]
>
> > sizeof(integer) = 4 на x64
>
> почему?!
Потому что integer это 4 байта, так глаголит документация: http://docwiki.embarcadero.com/Libraries/XE6/en/System.Integer
Оть было-бы это NativeInt - тогда другой коленкор.
← →
MBo © (2014-11-24 08:27) [34]
> Держали двадцать корректур, и всё равно на титульном листе
> было напечатано: «Британская энциклопудия».
"Врятли" в начале бросается в глаза.
И с мягкими знаками беда осталась:
будет производится работа
можно будет ознакомится
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.395 c