Основная стоимость производительности будет диском i/o. "mmap ()", конечно, более быстр, чем istream, но различие не могло бы быть примечательным, потому что диск i/o будет доминировать над Вашим временем выполнения.
я попробовал фрагмент кода Ben Collins (см. выше/ниже) протестировать его утверждение, которое "mmap () путь быстрее" и не нашло измеримого различия. См. мои комментарии к его ответу.
я был бы, конечно не , рекомендуют отдельно mmap'ing каждую запись в свою очередь, если Ваши "записи" не огромны - который был бы ужасно медленным, требуя 2 системных вызовов каждой записи и возможно теряя страницу из кэша памяти на дисках.....
В Вашем случае я думаю mmap (), istream и открытый низкий уровень () / чтение (), вызовы все будут о том же. Я рекомендовал бы mmap () в этих случаях:
(btw - я люблю mmap ()/MapViewOfFile ()).
Я думаю, вы могли бы использовать для этого свойство leftView
.
Вы можете добавить leftView
и rightView
в поле UITextfield. Эти представления можно использовать для отображения значка, но если это пустое представление, оно просто займет место, что вам и нужно.
CGFloat leftInset = 5.0f;
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, leftInset, self.bounds.size.height)];
self.leftView = leftView;
self.leftViewMode = UITextFieldViewModeAlways;
[leftView release];
К вашему сведению, но у меня была та же проблема, и я, наконец, понял, что есть еще метод редактированияRectForBounds:. Элемент управления использует его, когда вы изначально вводите что-то в поле. Если у него есть значение и он больше не находится в режиме редактирования, он затем использует textRectForBounds:, чтобы решить, где рисовать текст.