![]() |
Вопрос по проверке Properties`ов - Object типа.
Добрый день,
существует Object (к примеру) такого вида: Код:
var dataset:Object = {К примеру: Код AS3:
|
Код AS3:
Добавлено через 1 минуту Код AS3:
|
Спасибо.
|
Код AS3:
Код AS3:
|
Для проверки существования нужно использовать оператор in.
Вообще через try можно, но не люблю я такие штуки. Можно написать свой метод getValue, в который передавать строковую переменную. - в примере "dataset.sub.dataset.value_to_check". Меня как всегда опередили =( |
try/catch тормозит, так что зря-понапрасну лучше не использовать
|
Ты не прав, бро.
Код AS3:
Код:
Hit try: 213 |
Говоря о "тормознутости" try/catch я имел ввиду общий случай, а не этот конкретно. Результаты теста у меня идентичны Вашим, но опять таки, немного наигран тест, если чуток его изменить, то try/catch нервно курит в сторонке((
Код AS3:
Miss try: 13299 Hit getProperty: 8104 Miss getProperty: 8987 А у Вас такие же результаты? Или я что-то не так делаю? Да, получается, что метод то себя не оправдал, а жаль(( |
Нельзя говорить о "нервно курит в сторонке", пока один из параметров (который, кстати, должен доминировать: чаще отсутствие поля это исключительный случай, а не наоборот) работает в 40 раз быстрее =)
try/catch мне не нравится тем, что в строчке кода, которую я в него оберну, может содержаться совершенно другое RTE. Я стараюсь не использовать его вообще нигде. Поэтому идеологически твой вариант мне ближе, но я бы реализовал его по другому: getProperty возвращает Boolean, удалось считать ли, а сам getProperty записывает в поле считанное значение. Т.е. Код AS3:
|
А если так:
Код AS3:
Hit try: 234 Miss try: 13595 Hit getProperty: 627 Miss getProperty: 695 В общем производительность оценить в AS3 на глаз (и даже такими синтетическими тестами) нереально, слишком много факторов не учитывается. Я возможно заменю "внутренности" getProperty на try/catch. Пока в раздумьях, просто я придерживаюсь мнения, что там где можно обойтись без ловли ошибок, нужно обходится... Добавлено через 2 минуты Цитата:
Добавлено через 3 минуты Цитата:
Добавлено через 4 минуты Цитата:
Добавлено через 5 минут Ну в общем я за производительность обеями ногами, как говорится копейка Гигагерц бережет) |
| Часовой пояс GMT +4, время: 14:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.