title: Objective C to Swift bridge leads to heavy CPU usage when converting arrays in Swift 3
body: <p>Having upgraded to Swift 3 my OSX app has started eating up the CPU when dealing with relatively big arrays (500+ custom objects) being passed form the Objective C layer to the Swift layer.</p>
  
  <p>The array exists in an Objective C class</p>
  
  <pre><code>@property (nonatomic, strong) NSArray *readings;
  </code></pre>
  
  <p>And is called in a Swift class</p>
  
  <pre><code>let readings = self.observation.readings
  </code></pre>
  
  <p>From the Instruments developer tool results it looks like the problem is happening at the <code>unconditionallyBridgeFromObjectiveC</code> call</p>
  
  <pre><code>Weight      Self    Weight   Symbol Name
  208.00 ms   95.8%   0 s      static Array._unconditionallyBridgeFromObjectiveC(NSArray?) -&gt; [A]
  </code></pre>
  
  <p>I have tried removing the line that makes this call and the problem goes away. I don't see this problem is Swift 2. The conversion is fine for smaller arrays and increases in CPU usage uniformly as the array grows. </p>
  
  <p>Am I doing something wrong? Is there a way of avoiding this conversion and still being able to access elements in the array without touching the Objective C code? The array is rebuilt every time there is a call so I can't just manage it on the Swift side.</p>