Posts Tagged switch

C++ For C# Developers: Part 6 – Control Flow

Tags: , , , , , , , , ,

Let’s continue the series with another nuts-and-bolts topic: control flow. The Venn diagram is largely overlap here, but both C# and C++ have their own unique features and some of the features in common have important differences between the two languages. Read on for the nitty-gritty!

Read the rest of this article »

6 Comments

How Burst Compiles Switches and Ref Parameters

Tags: , ,

Today we go back to basics and see how Burst compiles some fundamental language features: switch statements and ref parameters… with surprising results!

Read the rest of this article »

No Comments

IL2CPP Output for C# 7.3: Pattern Matching

Tags: , , , ,

Last week we started exploring the new features of C# 7.3 in Unity 2018.3 by delving into tuples. This week we’ll continue and look at pattern matching. Read on to see how the many forms of pattern matching are actually implemented by IL2CPP!

Read the rest of this article »

3 Comments

The Effects of Useless Code

Tags: , , , ,

There are a lot of ways to write C# code that has no effect. One common way is to initialize class fields to their default values: public int Value = 0;. Today we’ll go over five types of useless code and see what effect it has on the actual machine code that the CPU executes. Do IL2CPP and the C++ compiler always do the right thing? Let’s find out!

Read the rest of this article »

No Comments

IL2CPP Output for Iterators, Switch, and Using

Tags: , , ,

Today we’ll look at the C++ code that IL2CPP outputs when we use iterator functions (those that yield), switch statements, and using blocks. What are you really telling the computer to do when you use these C# features? Read on to find out.

(Website Announcement: check out the new tags page to find articles by topic)

Read the rest of this article »

No Comments

From AS3 to C#, Part 17: Conditionals, Exceptions, and Iterators

Tags: , , , , , , , , ,

Continuing the series on C# syntax, today we’ll look at the differences an AS3 programmer can expect to encounter when using conditionals (if/else, switch/case/break/goto) and exceptions (try/catch/finally/throw). We’ll also look at iterators, an all-new category for AS3 programmers that empowers us to both iterate however we want and to write coroutines, a kind of lightweight pseudo-thread.

Read the rest of this article »

4 Comments

If-Else Trees vs. Array and Vector

Tags: , , , , , ,

We’ve seen that if-else trees are way faster than Object, Dictionary, and even switch at key-value mapping, but how do they stack up against Array and Vector? Today’s article puts them to the test and uncovers some unexpected results.

Read the rest of this article »

8 Comments

ASC 2.0 Conditionals Performance

Tags: , , , , , , ,

Surprisingly, some interesting things have been happening with conditionals like if-else in AS3. First, a brand new AS3 compiler—ASC 2.0—has been released with the promise that it’ll generate more efficient bytecode. Second, some readers have pointed out the existence of a new (to me) technique: the “if-else tree”. Today’s article takes a look at just what that is and tests it against the classic options: if-else, the ternary (? :) operator, and the switch statement. Which will be fastest?

Read the rest of this article »

19 Comments

Conditionals Performance Revisited

Tags: , , , , , ,

Today I’m revisiting an article I wrote last August about conditionals: if-else chains, ternary (? :) operators, and switch statements. In that article I showed that if-else chains are about as fast as ternary operators and that both of them are 10-15% faster than switch statements. Today we’ll take a look at how those conditionals scale beyond just the few cases in the last article.

Read the rest of this article »

18 Comments

Conditionals Performance

Tags: , , , , , ,

Now that the Flash Player 10.1 testing is through I can return to a comment asking about the performance difference between if-else chains and the ternary (? :) operator. Further, I’ll discuss switch statements to see if there is any difference in performance for these commonly-used methods of flow control.

Read the rest of this article »

7 Comments