Хранение кода в кэше L1

Swift3

Вы можете использовать синтаксис индекса для доступа к Персонажу по определенному строковому индексу.

let greeting = "Guten Tag!"
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index] // a

Посетите https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html

или мы можем сделать строку Расширение в Swift 4

extension String {
    func getCharAtIndex(_ index: Int) -> Character {
        return self[self.index(self.startIndex, offsetBy: index)]
    }
}

ИСПОЛЬЗОВАНИЕ:

let foo = "ABC123"
foo.getCharAtIndex(2) //C

8
задан pitr 24 June 2009 в 18:50
поделиться

4 ответа

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

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

Конечно, это все предположения - - Я ничего не знаю о языке «К».

5
ответ дан 5 December 2019 в 14:06
поделиться

Я считаю, что они говорят о том преимуществе, что основной исполняемый код помещается в кэш L1; независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1).

независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1).

независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1).

4
ответ дан 5 December 2019 в 14:06
поделиться

Вы путаете весь программный код с наиболее часто выполняемым кодом.

Для интерпретируемых языков ядро ​​интерпретатора, безусловно, является одним из наиболее часто выполняемых кодов. Наличие наиболее часто выполняемого кода в кэше ускоряет выполнение так же, как и наиболее часто используемые данные в кеше.

Ключевой частью является «наиболее часто» - нет необходимости иметь кэшированный весь код / ​​данные, чтобы увидеть значимые ускорение.

2
ответ дан 5 December 2019 в 14:06
поделиться

Интерпретатор работает как обычная программа, управляемая ОС. Интерпретируемая программа выполняется в пространстве памяти интерпретатора, в сегменте данных. Многие программы K могут легко поместиться в кэш L1 полностью, хотя весь интерпретатор может и не поместиться. Однако основной цикл интерпретатора, вероятно, поместится.

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

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