Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11

 

  Вопрос: .NET vs Basic 6 Добавлено: 22.08.04 17:53  

Автор вопроса:  Sparxx | Web-сайт: www.putin.ru

Ответить

  Ответы Всего ответов: 151  

Номер ответа: 61
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #61
Добавлено: 23.08.04 05:43
Очень странный цикл. Если бы это было на WASM.RU, то тебя бы просто заклевали за такой код цикла.

Хорошо выслал тебе прогу цикла на 2 млрд (не на 20).

Но это всё таки не цикл.

Ответить

Номер ответа: 62
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #62
Добавлено: 23.08.04 06:13
 А, я понял в чём дело.
 Возможно даже что это и цикл. Ведь 20 млрд. не влазит в один регистр.

Ответить

Номер ответа: 63
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #63
Добавлено: 23.08.04 06:35
2 WaX: VB 2005 рулит по всем фронтам!



Ответить

Номер ответа: 64
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #64
Добавлено: 23.08.04 06:37
Артем, не парься, они непробиваемые и ничего в .Net не понимают и
понимать не собираются :)

Ответить

Номер ответа: 65
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #65
Добавлено: 23.08.04 06:41
 Однако странный код какой то.
 Ведь для длинной арифметики существует сопроцессор, который и занимается тем, что разгружает ЦП за счёт параллельной работы с длинными числами. Тем более что регистры ESI и EDI нужно постоянно сохранять в стеке и восстанавливать, т.к. они используются очень часто.

 А в этом коде сопроцессор игнорируется напрочь. Если я правильно понял, то половина числа пересылается в ESI, а половина в EDI.

 Слушай, пришли ка мне полный дизассемблированный листинг на cyrax@hotmail.ru

 Учти что есть ещё sne и Sharp. И если там есть хоть одна лажа, то мы её найдём

Ответить

Номер ответа: 66
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #66
Добавлено: 23.08.04 06:48
Кстати, а кто знает что лучше использовать для 20 млрд: 1 цикл через сопроцессор или 5 циклов по 4 млрд через обычные регистры?

 Не, я понимаю что такое число редко встретишь в программах для персоналки. Но всё таки.

Ответить

Номер ответа: 67
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #67
Добавлено: 23.08.04 06:53
Ну вот, ешкин кот! ПРосил же закрыть тему сразу... А развязали черт
знает что. Придется и мне что-нть ответить...

А вот что вы скажете на то, что ряд технологий, которые появятся в
Longhorn, будут доступны только из .NET? Напрмиер, Indigo и Avalon...
А ведь выход LongHorn'а близко... А потом будет BlackComb, где
наверняка навинок, несовместимых с unmanaged-кодом будет еще больше.
И если человеку нужно выбрать что-то, на чем 15 лет программить, то
его выбор должен явно пасть на .NET, иначе он рискует через пару лет
быть сильно ущемлен в возможностях...

> То есть, я не смог
> отличить компонент, написанный на C# от .NET-компонента, написанного
> на Delphi!
> --
>
> Это явно твоя промашка, именно из-за того что ты имеешь счастье прораммировать лишь на одном языке... или ты со мной не согласен !?
Чепухня! Весь код в .NET компилируется в IL (промежуточный код). А
имя IL-код узнать язык, на котором писалось приложение, практически
невозможно...
Пример приведу: недавно декомпилировал .Net-библиотеку, написанную на
C# в VB .NET... И после декомпиляции и пары исправлений в коде
(все-таки декомпиляторы пока не всемогущи, ошибки оставляют) код
заработал, несмотря на то, что написан был на C#.

> В .NET без проблем можно работать с MSAccess, MSSqlServer - в этом
> случае XML используется в качестве промежуточного хранилища данных.
> --
>
> В VB6 тоже можно, и что?
В .NET есть managed-провайдер данных, оптимизированный под работу с
SQL Server'ом. А если VB6 для этого будет юзать OleDB, а .NET общаться
с СУБД напрямую, то в выигрыше будет явно .NET.
А между тем, в новой версии SQL Server 2005 codenamed Yukon уже
существует поддержка .NET на уровне ядра: хранимые процедуры там можно
писать на CLS-совместимых языках.

Ну а вообще, если бы ты имел счастье ознакомиться с ADO .NET, то понял
бы, что ADO, DAO, etc. в дауне по сравнению с ним.



Ответить

Номер ответа: 68
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #68 Добавлено: 23.08.04 06:57
Блин, пришлось шариться по Инету, чтобы найти, какие команды сколько тактов требуют.

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

=============================================================
.486
.model flat,stdcall
option casemap:none

      include \masm32\include\windows.inc
      include \masm32\include\masm32.inc
      include \masm32\include\user32.inc
      include \masm32\include\kernel32.inc
      include \masm32\macros\macros.asm
; ~~~~~~~~~
      includelib \masm32\lib\masm32.lib
      includelib \masm32\lib\user32.lib
      includelib \masm32\lib\kernel32.lib
BaseAscii PROTO :DWORD, :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
.data
    Buff db 32 dup (0)
.code
start:
invoke GetTickCount
xor ecx,ecx
xor edx,edx
xor ebx,ebx
mov ebx,0FFFFFFFh
mov ecx,817C800h
mov edx,4Ah
@Loop: ;======================== сам цикл здесь ==========================
dec ecx ;3 такта
jnz @Loop ;8 тактов
dec edx ;3 такта
jz @F ;8 тактов
mov ecx,ebx ;2 такта
jmp short @Loop ;15 тактов
@@: ;========================= конец цикла =============================
mov ebx,eax
invoke GetTickCount
sub eax,ebx
invoke BaseAscii, eax, addr Buff, 0, 10, 0, 0, 1
invoke MessageBox,NULL,offset Buff,SADD("Время счёта до 20 000 000 000 (в мс):";),MB_OK
xor eax,eax
invoke ExitProcess,eax
BaseAscii PROC uses esi edi InPut:DWORD, OutPut, Len, Base, Comma, Fill, TermA
LOCAL LBuff[32]: BYTE

      pushad
         xor esi, esi
         mov eax, InPut ; Input
         mov ebx, OutPut
         mov byte ptr [ebx], '0'
      .while (eax)
         xor edx, edx
            div Base ; Base 10, 16, 8, 2
            add dl, 30h ; Convert to dec ASCII
            mov LBuff[esi], dl
            inc esi
      .endw
         xor edi, edi
         mov ecx, esi
      .if Len > ecx && Fill == 1 ; Zero fill
            xor eax, eax
         .while (eax < Len)
               mov byte ptr [ebx+eax], '0'
               inc eax
         .endw
            sub Len, ecx
            add edi, Len
      .endif
      .while (ecx)
            mov al, byte ptr LBuff[esi-1]
            mov byte ptr [ebx+edi], al
            inc edi
            dec esi
            dec ecx
      .endw
      .if TermA ; Insert a terminating char
         mov byte ptr [ebx+edi], 0
      .endif
       popad
          ret
BaseAscii ENDP

end start
====================================================================

И сам ехе-файл на мыло высылаю, окошек там нет, только MsgBox по окончании счёта.

Ответить

Номер ответа: 69
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #69
Добавлено: 23.08.04 07:09
2sne: про формат .Net-сборок... Пока ты не изучишь его под микроскопом
(о чем я тебя, кстати, просил :), твои слова бездоказательны.

> Ну что-же, если все так и останется, то посмотрим как бэйсик фанаты
> будут уживаться с фанатами паскаля :) Обычно как такие сюда заходят,
> начинается безосновательный флуд...
Пока в мире .NET рулит C#, VB по популярности на 2-ом месте...
А паскалянтов будем с вилами выгонять :)

> Будь технология .NET востребована, за столько лет её существования
> я бы увидел хоть одно действительно серьёзное .NET-приложение. Я не
> увидел пока ни одного. Даже не очень серьёзного. Похоже, что .NET -
> это язык для написания программ, представляемых на конкурсы,
> устраиваимые Майкрософтом. Не более.
Конечно, широко распространенных .NET-приложений пока нет. Наверное,
людей пугает размер .Net Fw.
А вот приложения под заказ, и приложения для иносратнных пользователей
пишутся на всю катушку!
На Gotdotnet.ru чуть ли не каждый день появляются объявления о приеме
на работу, с зарплатой 800-1500 USD.
Я сам не так давно написал за пару недель ASP .NET приложение за
неплохую на мой взгляд сумму - 300 USD.



Ответить

Номер ответа: 70
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #70
Добавлено: 23.08.04 07:14
> Может быть вариант что программа компилируется в машинные
> коды при каждом запуске. Это к преимуществам .NET платформы
> никак не отнести.
IL-код компилируется только один раз - при первом запуске программы.
Если тебя это не устраивает, то можно сразу пройтись утилитой, которая
скомпилирует IL код. Тогда при первом запуске программы JIT-компиляция
проходить не будет, но и о мультисистемности можно забыть.

Ответить

Номер ответа: 71
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #71
Добавлено: 23.08.04 07:15
> Может, это бесспорно, вот только для этого надо сначала
> что-то скомпилировать, а если учесть что на данный момент
> у меня не установлено ни FW ни студии .НЕТ (винду не охото
> засорять), то лично мне это не под силу :))
Давай я пришлю тебе пару тестовых прог, ты их обследуешь и выложишь
хорошо документированные результаты. Вот тогда поговорим...


Ответить

Номер ответа: 72
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #72
Добавлено: 23.08.04 07:20
За пару дней 72 сообщения нафлудили :))))

Ответить

Номер ответа: 73
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #73 Добавлено: 23.08.04 07:22
Артём, это твой код, в тактах:

00000010 mov eax,esi - 2 такта
00000012 mov edx,edi - 2 такта
00000014 add eax,1 - 4 такта
00000017 adc edx,0 - 4 такта
0000001a jno 00000023 - 8 тактов
0000001c xor ecx,ecx - 3 такта
0000001e call 784AA904 - 28 тактов
00000023 mov esi,eax - 2 такта
00000025 mov edi,edx - 2 такта
00000027 cmp edi,4 - 10 тактов
0000002a jg 00000036 - 8 тактов
0000002c jl 00000010 - 8 тактов

плюс ещё неизвестно, сколько выполняется по вызову процедуры, начинающейся по адресу 784AA904.

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

Ответить

Номер ответа: 74
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #74 Добавлено: 23.08.04 07:27
Павел, не за 2 дня, а за 13 с половиной часов.
А что было бы если Sharp тут оказался, представляешь?

Ответить

Номер ответа: 75
Автор ответа:
 Sparxx



Вопросов: 3
Ответов: 26
 Web-сайт: www.putin.ru
 Профиль | | #75
Добавлено: 23.08.04 09:40
Неудержусь, скажу "Бля%%".

2павел - рубай тему, никто помогать так и не собрался, все тока останутся при своих после 15ти страниц обсуждений...

Бешенный форум какойто, чес слово, нигде подобного невидел... Может это и хорошо, но.. Вам здесь сидеть, вам и решать. Хотите, создайте новую тему, будет 6ть топиков про "то как мы спорили кот круче". После всех этих топиков - ничкто не сменил мнения. Че толку тогда?

Павел, рубай!

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам