Страница: 1 | 2 | 3 | 4 | 5 ..... 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
Страница: 1 | 2 | 3 | 4 | 5 ..... 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
Вопрос: эээээ
Добавлено: 12.04.05 18:57
Автор вопроса: Дмитрий Щапов
Ответы
Всего ответов: 760
Номер ответа: 706
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #706
Добавлено: 21.04.05 17:17
Павел, а вообще на счет fbe - продумай заодно возможность приостановки доставки этого всего. А то скоро лето и я не хочу, что бы мой ящик переполнился...
Номер ответа: 707
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #707
Добавлено: 21.04.05 17:35
А твой за сколько?
Такого файла у меня нет, взял обычый Win32API.txt, методом copy-paste довел его размер до твоих же 1,493,370.
Код выполняется 10 раз, после этого полученное значение делится на 2. Время, затраченное на чтение/запись не учитывается.
Кодирование занимает порядка 390-400 мс (код я запускал несколько раз).
Для чистоты эксперимента выложи где-нибудь и свою прогу.
Мой код (VB 2005):
Dim mStart As Date = Now
Dim mresult As String = ""
For i As Integer = 0 To 9
mresult = Base8.ToBase8String(mData)
Next i
MessageBox.Show(Now.Subtract(mStart).ToString)
My.Computer.FileSystem.WriteAllText("c:\win32api plus.txt", mResult, False)
Dim SB As New System.Text.StringBuilder(CInt(mBytes.Length / 3 * 8))
Dim i As Integer
For i = 0 To mBytes.GetUpperBound(0) - 2 Step 3
SB.Append(Chr(((mBytes(i) And 224) >> 5) + 49))
SB.Append(Chr(((mBytes(i) And 28) >> 2) + 49))
SB.Append(Chr(((mBytes(i) And 3) << 1) Or ((mBytes(i + 1) And 128) >> 7) + 49))
SB.Append(Chr(((mBytes(i + 1) And 112) >> 4) + 49))
SB.Append(Chr(((mBytes(i + 1) And 14) >> 1) + 49))
SB.Append(Chr(((mBytes(i + 1) And 1) << 2) Or ((mBytes(i + 2) And 192) >> 6) + 49))
SB.Append(Chr(((mBytes(i + 2) And 56) >> 3) + 49))
SB.Append(Chr((mBytes(i + 2) And 7) + 49))
Next
If mBytes.Length Mod 3 > 0 Then
SB.Append(Chr(((mBytes(i) And 224) >> 5) + 49))
SB.Append(Chr(((mBytes(i) And 28) >> 2) + 49))
If mBytes.Length Mod 3 = 1 Then
SB.Append(Chr(((mBytes(i) And 3) << 1) + 49))
SB.Append("=="
Else
SB.Append(Chr(((mBytes(i) And 3) << 1) Or ((mBytes(i + 1) And 128) >> 7) + 49))
SB.Append(Chr(((mBytes(i + 1) And 112) >> 4) + 49))
SB.Append(Chr(((mBytes(i + 1) And 14) >> 1) + 49))
SB.Append(Chr(((mBytes(i + 1) And 1) << 2) + 49))
SB.Append("="
End If
End If
Return SB.ToString
End Function
Public Shared Function FromBase8String(ByVal mBytes() As Byte) As String
Dim SB As New System.Text.StringBuilder(CInt(mBytes.Length / 8 * 3))
Dim i As Integer
For i = 0 To mBytes.GetUpperBound(0) Step 8
SB.Append(Chr((mBytes(i) - 49) * 32 + (mBytes(i + 1) - 49) * 4 + (mBytes(i + 2) - 49) \ 2))
SB.Append(Chr(((mBytes(i + 2) - 49) Mod 2) * 128 + (mBytes(i + 3) - 49) * 16 + (mBytes(i + 4) - 49) * 2 + (mBytes(i + 5) - 49) \ 4))
SB.Append(Chr(((mBytes(i + 5) - 49) Mod 4) * 64 + (mBytes(i + 6) - 49) * 8 + mBytes(i + 7) - 49))
Next
If mBytes.Length Mod 8 > 0 Then
SB.Append(Chr((mBytes(i) - 49) * 32 + (mBytes(i + 1) - 49) * 4 + (mBytes(i + 2) - 49) \ 2))
If mBytes(i + 3) <> Asc("=" Then
SB.Append(Chr(((mBytes(i + 2) - 49) Mod 2) * 128 + (mBytes(i + 3) - 49) * 16 + (mBytes(i + 4) - 49) * 2 + (mBytes(i + 5) - 49) \ 4))
If mBytes(i + 6) <> Asc("=" Then
SB.Append(Chr((mBytes(i + 5) - 49) Mod 4 * 64 + (mBytes(i + 6) - 49) * 8 + mBytes(i + 7) - 49))
End If
End If
End If
Return SB.ToString
End Function
Номер ответа: 708
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #708
Добавлено: 21.04.05 18:08
Да, только у меня Целерон 475, а у тебя Атлон 2 гига
Номер ответа: 709
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #709
Добавлено: 21.04.05 18:11
А нет, сбрехал, это у меня дома. А на работе Pentium 3 500 MHz. Разница в принципе не большая.
Номер ответа: 710
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #710
Добавлено: 21.04.05 18:14
Короче скорость у тебя ниже на порядок получается а не в разы. Ну ладно, на то оно и ассемблер чтобы быстрым быть. Не каждый на таком написать сможет. VB.NET тоже в принципе скорость неплохую выдаёт. А на VB6 ты не пробовал тестить?
Номер ответа: 711
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #711
Добавлено: 21.04.05 18:16
Уважаемые, а кто заметил что форум изменился?
Павел услышал молитвы Артёма Л.
Номер ответа: 712
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #712
Добавлено: 21.04.05 18:23
Время, затраченное на чтение/запись не учитывается.
Ну да, я его и не учитывал.
Код выполняется 10 раз, после этого полученное значение делится на 2
А зачем на 2 то делишь? Чтоб быстрее было?
Номер ответа: 713
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #713
Добавлено: 21.04.05 18:23
На порядок? Не совсем объективно.
Ты свою программу выложи, я у себя затестирую, для точности.
Номер ответа: 714
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #714
Добавлено: 21.04.05 18:25
А зачем на 2 то делишь? Чтоб быстрее было?
Нет, чтоб твоему коду фору дать
На самом деле просто опечатался.
Номер ответа: 715
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #715
Добавлено: 21.04.05 18:26
На порядок? Не совсем объективно.
Ну может и не совсем точное определение. Точнее будет на поколение, т.к. программа выполняется почти с одинаковой скоростью на машинах 3-го и 4-го поколения.
Номер ответа: 716
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #716
Добавлено: 21.04.05 18:27
Нет, чтоб твоему коду фору дать
На самом деле просто опечатался.
А может просто проговорился?
Номер ответа: 717
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #717
Добавлено: 21.04.05 20:04
to Artyom:
Смотри здесь {page 3; #34}
Говорю ещёраз СПАСИБО ОГРОМНЕЙШЕЕ!!!! за пример.
Кстати твоей ссылки в мсдн у меня нет такой страницы. Так что не надо! Смотрел я. Может не то искал, но откуда мне знать как там в НЕТ сделано.
Номер ответа: 718
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #718
Добавлено: 21.04.05 20:11
А чё тема в разделе ЮМОР? тогда бы в офф-топ
Номер ответа: 719
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #719
Добавлено: 21.04.05 20:13
В продолжени темы про котов
Навеяло про историю кота, на которого упала крышка от унитаза.
Знакомая рассказала похожую историю.
У ее дальних родственников кот ходил в туалет, так- залезал в унитаз,
лапами выплескивал воду и делал свои дела прямо в дырку с водой.
И вот ак то раз у этой родни был какой-то сабантуй, и толи света не было
в туалете, то ли котяра слишком приник к унитазу, но влетевший в
туалетную комнату посетитель не заметил животной и взгромоздившись на
унитаз почувтвовал, что кто то мягко водит по его заду, в том числе
гроздям.
В общем процесс пошел у мужика быстро и частично мимо унитаза. Хорошо,
что кот не выпустил коготки.
Номер ответа: 720
Автор ответа:
j3d1
ICQ: 8370005
Вопросов: 34
Ответов: 466
Профиль | | #720
Добавлено: 21.04.05 20:50
2j3d1
Кстати, не ты случайно написал игруху такую, Арканоид называется? Класная вещь! И если бы ещё непробиваемые камни убрать было бы вааще рулёз
случайно я