API CASH или CASHE (не помню)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

API CASH или CASHE (не помню)

Сообщение MOV » 20.04.2005 (Ср) 17:51

Где-то видел кратко кто-то говорил про эту API, которая может значительно ускорить некоторые процессы (короче, выполняет кэширование). Возможно Winдах и в VB в частности механизм кэширования включается автоматически, но там говорилось о примерах, где выигрыш по времени идет чуть ли ни в сотни раз. Сразу не проверил, а теперь появилось желание, но не найду, блин, теперь нигде инфу по этой фугкции. Есть ли она вообще эта API (в Эпплмане глянул - тоже нет)? :)
В MSDN порыться? :?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 20.04.2005 (Ср) 18:00

Кеширование чего? :?
Некоторых процессов? :lol:

Код: Выделить всё
Private Function EnableCache(ByVal ER_SOMEPROCESSES) As Long
:))

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 20.04.2005 (Ср) 18:25

Там был пример где в кэш сбрасывается допустим огромная таблица.
Типа все ее поля складываются в одну переменную:
Код: Выделить всё
T=значение какого-то поля
E=E&T

и так далее в цикле
и типа если это делать c кэшированием, то будет раз в 100 быстрее.

Не
Код: Выделить всё
EnableCache
точно, было просто CASHE.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 20.04.2005 (Ср) 18:34

Может не CASHE а CAСHE? :lol:

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 20.04.2005 (Ср) 18:41

CAСHE
? Ну не помню может и так. :?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.04.2005 (Чт) 5:40

Ещё раз - кэширование чего и куда?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 23.04.2005 (Сб) 8:21

Вот нашел-таки это диалог из какого-то другого форума:

URL: Tue Sep 23 21:40:51 2003
Помогите!!!
Помогите, Бога ради! Пытаюсь программировать в Visual Basic 6 и столкнулся с неразрешимой проблемой. При открытии файла большого объема (да и любых других данных)... В общем при добавлении данных к переменной типа string процесс идет все медленнее... То есть пока сама переменная имеет объем до (примерно) 100Кб все хорошо, а дальше процесс добавления данных такой медленный, что даже мне ждать надоедает. Скажите, VB всегда такой медленный?
Dim
Thu Sep 25 11:59:52 2003
Re: Помогите!!!
Программы на VB обычно получаются гораздо более быстрыми чем на других языках (даже C++), но требуются определенные хитрости. В описанном тобой примере происходит замедление из-за того, что у длинной переменной трудно найти конец. Решается проблемма просто созданием кэша. То есть вместо строки: Str=Str & AddData, нужно сделать примерно следующее:
ch=0
...
Cash(ch)=Cash(ch) & AddData
if len(Cash(ch))>10000 then
if ch<255 then ch=ch+1
End if
...
for i=0 to ch
Str=Str & Cash(i)
next i
Этот фрагмент делает тоже, что и простая строка, только в 255 раз быстрее (если длина данных превышает 2550000).

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

Сообщение ANDLL » 23.04.2005 (Сб) 11:11

Ндаа. Это в другой раздел http://bbs.vbstreets.ru/viewforum.php?f=16.
Никогда программы на VB не получались быстрей чем на C++. И тормоза при конкатенации не из-за проблемы нахождения конца строки(это как раз весьма быстро) а из-за копирования больших объемов данных.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 23.04.2005 (Сб) 12:15

Не буду спорить и даже соглашусь.
Но если в данном случае CASH действительно работает, что это за CASH? Нигде не могу найти. Похоже на API :? ?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.04.2005 (Сб) 16:35

ROFL.
Изображение
В мемориз!

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 23.04.2005 (Сб) 17:04

Amed :shock: :?

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 23.04.2005 (Сб) 17:11

Ладно чувствую, что это деза какая-то, если так, то убейте тему пожалуйста. :?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.04.2005 (Сб) 18:13

Да ладно, не обижайся. Переменная Cash - всего-то массив.

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 24.04.2005 (Вс) 9:20

Мдаааа... :lol: :lol: :lol: :lol: :lol:
Я тоже долго ржалнимог, особенно когда еще раз посмотрел на тему топика. :lol:
Действительно ступил. Но код все равно какой-то кривой, по моему, особенно:

Код: Выделить всё
ch=0
...
Cash(ch)=Cash(ch) & AddData
if len(Cash(ch))>10000 then
if ch<255 then ch=ch+1
End if

Получается, что ch всегда равно нулю то есть в массиве только один член. Зачем тогда if ch<255 then ch=ch+1?
В общем, бред какой-то :?
Тему убить, однозначно. :evil:

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 24.04.2005 (Вс) 14:47

Дык ты добавляешь в Cash(0), потом када его больше чем 10000 у тя все добавляется в Cash(1) и тд...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 24.04.2005 (Вс) 16:27

Нда... Если бы за каждую функцию апи Cash хотя бы на 1 увеличивали, я бы наверное уже был миллионером :lol:
З.Ы. Меняю cache на cash по курсу 1:3 :)
----

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 24.04.2005 (Вс) 16:50

:lol:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.04.2005 (Вс) 16:55

Улыбнули =) Пишите ищо )
ХЎ


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList