Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: time and Date Добавлено: 01.06.06 17:23  

Автор вопроса:  mr_Frank | Web-сайт: subaru.nv-avto.ru | ICQ: 316417 

Ответить

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

Номер ответа: 16
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #16 Добавлено: 03.06.06 13:25
вызов кривой обертки вокруг API

А с чего ты взял, что обертка кривая? есть какие то факты, подтверждающие твои слова?
Если продолжить твою мысль, то любая встроенная функция языка (будь то .НЕТ или VB6) есть не что иное, как кривая оболочка для API! И как следствие надо юзать только API и работать на прямую с блоками памяти и забыть про любые встроенные ф-и??

Ответить

Номер ответа: 17
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #17 Добавлено: 03.06.06 13:34
HOOLIGAN
Что ты все пыжисься со своими API, как будто это панацея! Они хороши там, где без них не обойтись (например VB6).
Да, ты знаешь API и это круто.. эти знания никогда не будут лишними.. Но так же не всегда они и будут нужными! Далеко не каждый знает API и порядок их вызова.. тем более в .NET это задача не настолько проста как кажется на первый взгляд..
А по поводу "оригинальности", дабы не быть голословным проведем обыкновенный тест...

Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential)> _
Structure SYSTEMTIME
    <MarshalAs(UnmanagedType.U2)> _
    Dim wYear As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMonth As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDayOfWeek As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDay As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wHour As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMinute As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wSecond As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMilliseconds As Short
End Structure

Public Class Form1

    Private Declare Sub GetLocalTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim stopWatch As New Stopwatch
        Dim Counter As Integer
        Console.WriteLine("----- Results of call -----";)

        '//API Test
        stopWatch.Start()
        For Counter = 1 To 50
            Dim LocalTime As New SYSTEMTIME
            GetLocalTime(LocalTime)
        Next
        stopWatch.Stop()
        Console.WriteLine("API Test - {0} ms", stopWatch.Elapsed.TotalMilliseconds)
        stopWatch.Reset()

        '//System.DateTime.Now Test
        stopWatch.Start()
        For Counter = 1 To 50
            Dim CurrentTime As Date = DateTime.Now
        Next
        stopWatch.Stop()
        Console.WriteLine(";DateTime.Now Test - {0} ms", stopWatch.Elapsed.TotalMilliseconds)
        stopWatch.Reset()

        '//System.Date.Now Test
        stopWatch.Start()
        For Counter = 1 To 50
            Dim CurrentTime As Date = Date.Now
        Next
        stopWatch.Stop()
        Console.WriteLine("Date.Now Test - {0} ms", stopWatch.Elapsed.TotalMilliseconds)

    End Sub

End Class

Ответить

Номер ответа: 18
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #18 Добавлено: 03.06.06 13:39
Я не знаю, как устроены и работают встроенные ф-и .НЕТ.. да,собственно, и знать не хочу.. но вот результат:
----- Results of call -----
API Test - 0,7833 ms
DateTime.Now Test - 0,1391 ms
Date.Now Test - 0,0639 ms


И продолжать спор на эту тему считаю лишним.. результаты теста говорят сами за себя...

Ответить

Номер ответа: 19
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #19 Добавлено: 03.06.06 14:29
может ты просветишь, какое отношение имеют к оригинальности некие замеры неких скоростей, которые приведены?
Честно скажу, не могу понять как связаны оригинальность и скорость

А что касается твоего "теста на скорость", то результат просто смехотворен: 50 вызовов GetLocalTime = 0,7833 ms!!!
Реально на практике 50 вызовов GetLocalTime = ~0,01985 мс. Что почти в 10 раз быстрее DateTime.Now

Кроме того, ты либо не знаешь своего .net, либо передёргиваешь:
В тесте с апи создаются объекты Dim LocalTime As New SYSTEMTIME, со всеми сопутствующими потерями инициализации
в тесте же с DateTime.Now New нет. Почему?

Учись тестировать.

Ответить

Номер ответа: 20
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #20 Добавлено: 03.06.06 15:39
Даже если убрать New, то результаты все равно остаются более чем плачевные! И далеко НЕ в пользу API...

----- Results of call -----
GetLocalTime Test - 0,7146 ms
DateTime.Now Test - 0,136 ms
Date.Now Test - 0,0642 ms

Что очередной раз доказывает, что не следует использовать API в .NET как в каждую дырку затычка, ибо родные ф-ии тут работают на порядок быстрее.. Ведь не зря же в любой книге по НЕТ пишут о том, что использование неуправляемого кода (будь то API или COM-объекта) является крайне нежелательным..

Реально на практике 50 вызовов GetLocalTime = ~0,01985 мс

Где проводил тестирование? в VB6? Если ты не заметил, то этот топик относится к форуму .НЕТ..
На Си или ассемблере это наверняка будет еще быстрее, и результат твоего тестирования тут неуместен...

Ответить

Номер ответа: 21
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #21 Добавлено: 03.06.06 15:50
может ты просветишь, какое отношение имеют к оригинальности некие замеры неких скоростей

С удовольствием!
Говоря об оригинальности, я не зря заключил это слово в кавычки. А сделал это для того,чтобы подчеркнуть всю извращенность и тормознутость некоторых способов получения значений даты и времени..
И по результатам тестирования, твой способ тоже можно признать вполне "оригинальным"!!!

Ответить

Номер ответа: 22
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #22 Добавлено: 04.06.06 00:44
Что очередной раз доказывает, что не следует использовать API в .NET как в каждую дырку затычка, ибо родные ф-ии тут работают на порядок быстрее

Полность согласен. Кроме того, что ты заметил, есть и второй вывод, который прямо проистекает из твоих слов:
ты встал на ступеньку ниже (в данном случае в плане скорости) и хвастаешь тем что на этой ступеньке обогнал связаного по рукам и ногам. Но при этом обогнав кого-то, ты все равно на порядок медленее той ступеньки, от которой ты отказываешься.
Если нормальные методы неприменимы в .нет, то может есть смысл отказаться от него?
Честное слово, я поражаюсь тебе и тебе подобным.

Ответить

Номер ответа: 23
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #23 Добавлено: 04.06.06 01:58
ты встал на ступеньку ниже (в данном случае в плане скорости)

Это ничто по сравнению с тем, что я выиграл в плане легкости, удобства написания и скорости разработки приложений.. Сотые доли миллисекунды в итоге против нескольких десятков строк геморройного кода вызова API и объявлений структур... они того не стоят (имхо)... А если тебе доставляет удовольствие писать километры кода, ради ничтожного выигрыша в скорости выполнения.. чтож.. это дело вкуса! Тогда тебе надо вообще бросать VB и переходить на ассемблер.. Уж там ты вдоволь насладишься всякими регистрами, стеками и т.д...
Если нормальные методы неприменимы в .нет, то может есть смысл отказаться от него?

А кто сказал что эти методы НОРМАЛЬНЫЕ??? Почему это надо принимать как аксиому? Нормальными (даже более чем) они были в эпоху VB6.. в эпоху динозавров!! Где в силу убогости языка как такового, невозможно было решить 80% задач без использования API.. Но с выходом НЕТ ситуация изменилась коренным образом.. Тепереь мне ни к чему изучать тонны мануалов по использованию API.. и ты знаешь, я счастлив что могу забыть про все эти буферы,нуль-символы.. и прочие прелести API!
И если уж ты предлогаешь отказаться от НЕТ, то в любом случае никак не в пользу VB6!!! Но это уже отдельная тема разговора...

Честное слово, я поражаюсь тебе и тебе подобным

Ты знаешь, я в свою очередь тоже поражаюсь тебе и тебе подобным. Той ярости и упорству с которым вы не желаете признавать НЕТ. И происходит это только потому, что вы теряете свое преимущество в знании API! Да, в эпоху VB6 ты был крут со своими знаниями, ты так же крут в каких то других языках, где API позволяют творить невозможное, но это .НЕТ!!!! Это другая технология.. И тут твои знания-ничто.. как бы прискорбно это не звучало, но согласись-это так..
Я вовсе не отрицаю полезности этих знаний.. Знание внутренней реализации тех или иных процессов никогда не было и не будет лишним.. Так же они развивают определенный склад ума,логику и многие другие полезные вещи, но наряду с этим ,теперь, они теряют былую актуальность и необходимость..
И впредь, прежде чем кому либо в НЕТ-форуме давать совет юзать API и говорить что это кульно, сначала подумай...

Ответить

Номер ответа: 24
Автор ответа:
 Nikolai



Вопросов: 23
Ответов: 58
 Профиль | | #24 Добавлено: 04.06.06 08:01
А как вы тестируете проги? или чем.

Ответить

Номер ответа: 25
Автор ответа:
 Nikolai



Вопросов: 23
Ответов: 58
 Профиль | | #25 Добавлено: 04.06.06 08:06
Сам понял я раньше думал с помощью какой-то проги.

Ответить

Номер ответа: 26
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #26 Добавлено: 04.06.06 09:11
EROS, я не понимаю, почему ты постоянно говоришь, что якобы я пишу километры кода?
Может тебе невдомёк, но допустим на асме я пишу меньше, чем на том же ВБ для одной и той же задачи. Кажется странным? Это потому, что ты понятия не имеешь, как выглядит исходник проги на асме и как строится структура программы. Для двух равных по функционалу прог исходник vb-проги весит больше, чем исходник асм-проги. А исходник на vb.net с его действительно километровыми строками весит ещё больше, как ни странно тебе это слышать:) Точно также и в асме существуют иде для графической (мышью) разработки интерфейса. И они превосходят по уровню ту же вб-иде. Поэтому и в создании интерфейса никакого преимущества у тебя нет.
Единственно, в чем есть преимущество, если это можно назвать преимуществом - это то, что тебе ничего не надо уметь и знать, чтобы сляпать прогу. Вот это и есть тот шаг на ступеньку ниже в знаниях и умениях.
А ты ещё и гордишься этим, и что самое неприятное - призываешь других в сообщество неумеек и незнаек. Вместо того, чтобы поощрять начинающих к тому, чтобы они становились действительно знающими и умеющими специалистами. Как собака на сене: и сам не могу/не хочу уметь и другим не дам научиться.
Очень странная у тебя позиция...

Я как постил, так и буду постить альтернативные методы, в каком бы форуме они не были. Если хотя бы один отвернется от .нет, то уже есть надежда, что этот человек не потерян для программирования. И из него возможно и выйдет специалист, а не бездумный кнопкокидатель.

Ответить

Номер ответа: 27
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #27 Добавлено: 04.06.06 10:40
Я никого не призываю, и не поощряю... я лишь отстаиваю свою собственную точку зрения (равно как и ты).. У каждого из нас свой путь и свой выбор, и я свой сделал.. И если человек перешел на НЕТ, значит ему это нужно. И если он задает вопрос по НЕТ, значит и ответ должен быть с использованием технологии НЕТ (имхо). А коль скоро ты решил давать альтернативные решения, то будь готов отстаять право на жизнь для этого решения..

Ответить

Номер ответа: 28
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #28 Добавлено: 04.06.06 12:19
Мне не нужно отстаивать право на жизнь того инструментария, которым я пользуюсь.
Этот инструментарий доказал свою состоятельность тем, что в течение многих лет является базисом и основой как операционной среды, в которой мы сидим, так и новомодных надстроек а-ля .нет над этим инструментарием.
Да и нет у меня намерения отворотить тебя от .нет. Как говорится, "Кесарю - кесарево, слесарю - слесарево"...
Неприятно видеть, как новички ведутся на рекламную мишуру, которую ты преподносишь как чудо: "А в нет это легко!", "А в нет это одна строка!" и т.д. и. т.п. В конечном итоге мозги жиром заплывают, и рождаются вопросы типа "А как выделить имя файла из пути?" Это благодаря тебе такие тупые вопросы возникают, которые решаются при минимальных умственных затратах в течение минуты. Вот это самое неприятное. Люди перестают думать.

Ответить

Номер ответа: 29
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #29 Добавлено: 04.06.06 12:59
И снова я с тобой не соглашусь.. Неспособность думать, это не следствие использование того или иного языка, а умственные способности конкретного человека!
У каждого из нас был тот момент, когда остро чувствовалась нехватка знаний, и человек мыслящий начинает копать вглубь, и задавать сам себе вопросы почему и как??? Он стремится к саморазвитию! И освоив тот же НЕТ, как более легкое средство в разработке программ, если возникнет необходимость в познании того же асма или Си, он будет изучать эти языки и технологии. Но если же ему этого не надо, зачем навязывать ему то, что знаешь ты? К чему выливать на новичка эти АПИ, когда он просто физически и умственно еще не готов к тому, чтобы понять что это такое и как с ними работать!!! Если он еще не в состоянии "выделить имя файла из пути" а ты ему... юзай GetLocalTime или еще что покруче!!!
Одно дело, если бы ты привел рабочий кусок кода на НЕТ где показал бы как надо юзать АПИ, и растолковал ему что да как, тогда другое дело, я бы сам с радостью поднабрался бы знаний в этой области.. А так, эти ответы равносильны тем, что у нас на форуме практикуются всегда.. сходи в гугл, почитай книжки,купи МСДН.. и т.д.. согласись-это по крайней мере не профессионально! Если уж ты взялся отвечать человеку на его вопрос.. так будь добр, сделай это по нормальному и до конца.. с куском кода, с примером и т.д.. А нет.. так и постить не стоит... (имхо)

Ответить

Номер ответа: 30
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #30 Добавлено: 04.06.06 13:39
Можешь не соглашаться сколько угодно: молоко от этого не станет чёрным.
Тот кто первым делом вкусил "прелестей" .нет, уже не способен оторваться от этого.
Не будем далеко ходить за примерами: вот ты к примеру хрен когда выучишь тот же си или ассемблер, или дельфи. Только и хватит сказать, что "мне это не надо"! Это все на что ты способен, хотя и начинал наверняка не с .нет. Точно также и все, начинающие .нет
Надоело уже препираться, всё равно как горох об стену. Пора завязывать :(

Ответить

Страница: 1 | 2 | 3 |

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



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