Je vous écris un code à Swift où j'ai une classe comme suit:La comparaison booléenne ou nulle est-elle plus rapide?
class Note
{
var isDeleted:Bool = false
var deletedDateTime:Date!
}
Supposons qu'il y ait une source de données qui est rempli de notes et je veux faire un filtre basé sur la comparaison, alors je peux soit comparer par isDeleted
ou je peux comparer par deletedDateTime
. Lequel serait plus rapide à partir des deux déclarations suivantes:
var dataSource:[Note] = [Note]()
// fill the datasource with objects
dataSource.filter({$0.isDeleted == false}) // 1
dataSource.filter({$0.deletedDateTime == nil}) //2
Quelqu'un peut-il me guider s'il vous plaît?
Je crois que la vérification de l'un ou l'autre ne ferait pas un énorme décalage horaire –
Je doute qu'il y ait une différence significative, mais qu'est-ce que * vous * mesurez? –
Au niveau le plus bas, charger une valeur et vérifier si elle est nulle. S'il y a une différence dans le temps d'exécution, cela va être de l'ordre des nanosecondes. Plutôt que de vous préoccuper des micro-optimisations ici, concentrez-vous plutôt à rendre le code aussi clair que possible. La valeur 'boolean' est plus explicite: tester' isDeleted' indique clairement ce que vous faites. La recherche d'un 'deletedDateTime' inexistant est indirecte; ce n'est pas aussi clair. Un bon compromis serait d'éliminer la valeur 'boolean' et d'avoir une propriété' isDeleted'. –