Точное состояние зафиксированной памяти в Java

Лучше всего подойдет пользовательская функция, которая возвращает True или False. Если пользователь вводит что-то, что возвращает False, верните код и пользователь вводит новый номер.

Это было лучшее из того, что я мог придумать для защиты от неискушенных записей пользователей.

Function CheckTime(inputasString) As Boolean

Dim theDoubleDotThing As Long

theDoubleDotThing = InStr(1, inputasString, ":", vbBinaryCompare)

If theDoubleDotThing = 0 Then
    GoTo NOPE
End If



Dim theHOUR As Long, theMinute As Long

On Error GoTo NOPE
    theHOUR = CLng(Mid(inputasString, 1, theDoubleDotThing - 1))
    theMinute = CLng(Right(inputasString, 2))
On Error GoTo 0

If Right(inputasString, 3) <> ":" & Right(inputasString, 2) Then
    GoTo NOPE

ElseIf theHOUR > 12 Then
    GoTo NOPE

ElseIf theMinute > 60 Then
    GoTo NOPE
End If

CheckTime = True

Exit Function
NOPE:


End Function

Так что вставьте это в свой код ....

Private Sub bTNOK_Click()

    If CheckTime(textboxhour.Value) Then

    textboxhour.Value = Format(textboxhour.Value, "HH:mm")

    Else
        MsgBox "what the heck is " & textboxhour.Value & "?!?!?", vbCritical, Title:="Come On Man"

    End If

End Sub

РЕДАКТИРОВАТЬ Чтобы помочь оператору, я построил файл сэмпла , в котором есть кнопка для приглашения, а затем проверяет строку.

12
задан Spencer Stejskal 15 October 2008 в 22:59
поделиться

2 ответа

Зафиксированный размер является на самом деле выделенной памятью, используемый размер является размером, используемым для того, чтобы хранить фактические данные (при использовании ~ = фиксировал, время для главного GC и возможно роста "кучи"). Размер Max является жестким пределом, до которого "куча" может вырасти - если это - недостаточно броски JVM OutOfMemoryError.

Если память фиксируется затем, она определенно может использоваться. Кроме того, единственный случай, когда JVM не смогла бы фиксировать больше памяти (на современной ОС) - то, если аппаратные средства вне виртуальной памяти.

Все эти размеры только говорят Вам размер региона "кучи". JVM имеет другие регионы памяти также (стопки потока, кэш JIT, и т.д.), регион "кучи" является обычно самым большим, это примерно соответствует месту процесса.

Два примечания:

  • если зафиксированный размер не впишется в физическую память, то части его будут подкачаны к файлу подкачки. Это приводит к большому замедлению во время GC, и в таких случаях Вы улучшите производительность приложения путем сокращения размера "кучи".
  • некоторые операционные системы позволяют дважды заказывать памяти - можно выделить столько, сколько Вы хотите, пока Вы не пытаетесь использовать ее (забыл, которым ОС это было - кто-то заполняет меня),
21
ответ дан 2 December 2019 в 06:46
поделиться

"Делает это означает, что память используется процессом jvm, и НЕ доступный другим процессам" был бы корректный. Так его меньше затем (или равный) объем памяти ОС видит, как взято процессом JVM.

http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html (не извините никакие привязки для соединения с).

2
ответ дан 2 December 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: