Почему делает использование памяти приложения.NET, кажется, отбрасывают, когда оно минимизировано?

Спецификация языка программирования Go

Закрыть

После вызова close и после получения любых ранее отправленных значений, Операции приема возвращают нулевое значение для типа канала без блокировки. Многозначная операция приема возвращает полученное значение вместе с указанием того, закрыт ли канал.

blockquote>

Вы считаете нулевые значения.

Например,

package main

import (
    "fmt"
)

func main() {

    c1 := make(chan interface{})
    close(c1)
    c2 := make(chan interface{})
    close(c2)

    var c1Count, c2Count int
    var z1Count, z2Count int
    for i := 1000; i >= 0; i-- {
        select {
        case z1 := <-c1:
            c1Count++
            if z1 == nil {
                z1Count++
            }

        case z2 := <-c2:
            c2Count++
            if z2 == nil {
                z2Count++
            }
        }

    }
    fmt.Printf("c1Count: %d\nc2Count: %d\n", c1Count, c2Count)
    fmt.Printf("z1Count: %d\nz2Count: %d\n", z1Count, z2Count)
}

Детская площадка: https://play.golang.org/p/tPRkqXrAFno

Вывод:

c1Count: 511
c2Count: 490
z1Count: 511
z2Count: 490

Спецификация языка программирования Go

blockquote>

Для операторов

Для операторов с диапазон range

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

blockquote>

Close полезен для оператора for с предложением range.

11
задан GEOCHET 6 October 2008 в 19:05
поделиться

1 ответ

Диспетчер задач показывает Вам объем памяти, принадлежащий приложению, которое, оказывается, разбито на страницы в реальную память в то время. При уменьшении приложения в Windows ядро автоматически обрезает рабочий набор процесса, таким образом, требуется меньше памяти. Это поведение не характерно для приложений.NET.

При рассмотрении вместо этого процесса "Частные Байты" значение это даст Вам лучший признак объема памяти, используемого процессом. Это значение не изменится, когда рабочий набор процесса будет обрезан.

Microsoft предлагает больше информации в этой статье базы знаний: http://support.microsoft.com/kb/293215

27
ответ дан 3 December 2019 в 03:37
поделиться
Другие вопросы по тегам:

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