Это не может быть более эффективным; вполне может быть менее эффективным. Каждый раз, когда вы хотите работать с данными, данные живут вне ядра (если вы также не загружали свои программы и любые данные, которые они хотят прямо в ядро), и должны произойти как минимум два переключения контекста; если интерпретатор находится за пределами ядра, переключение контекста не требуется (если только эти данные не должны быть прочитаны откуда-либо (файл, пользователь, сеть и т. д.).
Более того, эти случаи «чтения откуда-то» повлекут за собой дополнительные переключения контекста , даже если ядро запросит , потому что за кулисами происходит много вещей для получения этих данных.
(Переключатели контекста стоят дорого. Они немного похожи на то, чтобы пнуть процессор в голову и сказать ему смотреть на что-то другое, когда он перестает видеть звезды; затем ему нужно записать, что он делал, прежде чем его пнуть, и затем прочитайте его заметки о том, что вы только что сказали.)