SourceKitService CPU Kullanıyor ve Xcode'u Durduruyor


110

Bu bir Beta sorunu DEĞİLDİR. Xcode 6.0.1, üretim sürümündeyim. Yaşadığım sorun, üzerinde çalıştığım kodu Oluşturmaya veya Çalıştırmaya çalıştığımda, Xcode'un uzun süre yanıt vermemesi ve SourceKitService'in CPU'nun% 400'ünden fazlasını tüketmesidir (Activity Monitor'e göre). Bu sorun son birkaç günden beri yeni, ancak tuhaf bir şekilde 17 Eylül'de resmen yayınlandığından beri Xcode 6.0 kullanıyordum. Bu sorun için bir düzeltme içereceğini umarak 6.0.1'e yükselttim.

Sorunun ne olabileceğine dair bir fikriniz var mı?


Hafıza tüketimini kontrol ettiniz mi? Bir süredir bu sorunu yaşamadım, ancak tüm RAM'i ve ardından HCF'yi tüketeceği betalarda gerçekten kötüydü. Genelde, özellikle alt simgelerde daha uzun aritmetik satırlarından kaynaklanıyordu. Rahatsız edici (ancak yasal) kodu bulmak için bölmeniz ve fethetmeniz gerekecek. Çizgiyi bulduğunuzda lütfen Playground'da yeniden üretmeyi deneyin ve bir hata raporu gönderin.
Chris Conover


Apple geliştirici forumlarında birkaç başlıkta okuyabileceğiniz gibi hala bilinen bazı hatalar var. Xcode 6.1 Beta 3, yüksek CPU tüketimini giderir ancak farklı olanları sunar. Çok üzücü.
Klaas

1
Ben de benzer bir sorun yaşıyorum. Xcode 7'de ve şimdi 8'de sorun yaşadım . Değişen tek şey, Xcode'unuza gelen koddur. Tahminimce, yeniden dizin oluşturmanın veya yeni kodun temel neden olduğu. Bu genellikle yukarı akışınızdan kod aldığınızda mı oluyor?
Honey

Yanıtlar:


151

Bu sorunla bu öğleden önce Xcode 6.1.1 ile karşılaştım (beta değil, resmi olarak yayınlanan sürüm). Playground'da bazı kodlar çalıştırıyordum ve bunun sebebinin bu olduğundan şüpheleniyordum. CPU neredeyse% 100 olarak sabitlendi ve Xcode derlemeleri tamamlayamadı.

İşte yaptığım şey:

1. SourceKitService'i ana CPU domuzu olarak gösteren "Activity Monitor" açıldı.

2. "Activity Monitor" içinde, SourceKitService'e çift tıklayın ve / Users / myname / Library / Developer / Xcode / DerivedData / ModuleCache / dizini altındaki dosyalar üzerinde çalıştığını gösteren "Dosya ve Bağlantı Noktalarını Aç" bölümüne tıklayın. belirli bir klasör için.

3. Belirtilen klasörü silin (bir komut satırından rm -rf kullanarak). Önbellek, Xcode Derived veri klasörünün içeriğini güvenli bir şekilde silebilir miyim? .

4. Activity Monitor'ü tekrar kullanarak SourceKitServer'dan Çıkmaya Zorla. Xcode içinde SourceKitService'in çöktüğünü söyleyen artık çok tanıdık işareti gördüm (bu yüzden SourceKitService tanıdık geldi!).

5. Adım 3'ü tekrarlayın.

Mac yine barışçıl. Hiçbir veri kaybolmadı ve Xcode'un yeniden başlatılmasına bile gerek yoktu (ki bunu başarısızlıkla denedim). Sonuç olarak, ModuleCache bir döngüde SourceKitService alıyor gibi görünüyor ve klasörü silmek sorunu çözüyor gibi görünüyor. Umarım bu sizin için de işe yarar.

Açılış notu:

Bu arada, SourceKitService sorununun nedeni, Swift sınıfımda çok uzun bir dizi bildirimine sahip olmamdı. Bir dizide 200'den fazla girdim vardı. 30'a düşürüldü ve hata ortadan kalktı. Bu nedenle sorun, elma kodundaki bir tür yığın taşması nedeniyle ortaya çıkmış olabilir (punto amaçlanmıştır).


Cevabınız için teşekkürler. Yine de kendi başınıza yorum yapmak yerine yanıtınızı düzenlemelisiniz.
Axalo

3
Swift'de, başlatma sırasında tür çıkarımına dayanan uzun dizi bildirimiyle benzer bir sorun yaşadım. Türü açıkça ekleyerek sorunu çözdüğünü buldum.
jay492355

2
Aynı sorun. sözlüklerle büyük bir dizi. Tüm verileri bir .PLIST dosyasına koyup okudum.
Bruno Paulino

64
2016'da 200 elemanlı bir diziyi işleyemeyecek olmamız başka birini rahatsız ediyor mu? 80'lerde bir Atari 600'de BASIC'de daha uzun diziler kullandım.
Eddie Sullivan

2
Şimdi de aynı sorunu yaşadım ve @ jay492355'in bahsettiği gibi, dizinizi açıkça yazmanız gerekiyor.
Guy Kogus

24

Sorunu görüyordum çünkü şuna benzeyen yaklaşık 60 öğeli bir dizi bildiriyordum:

let byteMap = [

["ECG" : (0,12)],
["PPG" : (12,3)],
["ECG" : (15,12)],
["PPG" : (27,3)],
["ECG" : (30,12)]

Türe şu şekilde açık bir şekilde açıklama ekleyerek:

let byteMap : [String: (Int, Int)] = [

["ECG" : (0,12)],
["PPG" : (12,3)],
["ECG" : (15,12)],
["PPG" : (27,3)],
["ECG" : (30,12)],

Durdurmayı başardım. Swift'in uzun bir diziyle karşılaştığında bir döngüye girmesini sağlayan tür çıkarımı ve yazım denetimi ile bir ilgisi olması gerektiğini düşünüyorum.

Bu, Xcode 6.2'deydi. Yukarıda anlatıldığı gibi ModuleCache'yi de sildim ve şimdi her şey yolunda.



1
Xcode 8.1'de benim için benzer bir sorun. NSConstraintLayout nesneleri dizim var. 4. ile iyi çalıştı. 6 ile iyi çalışıyor. 6 ile iyi çalışıyor. 7 ile pek iyi değil ve 8. ile hiç çalışmıyor. Her birinde 4 nesne olan iki dizi oluşturdum ve iyi çalışıyor.
Dan Loughney

@ onmyway133 Bunun neden her zaman olmadığını ve yalnızca ara sıra olduğunu merak ediyorum
Tatlım

return ["a", "b", "c", "d", "e", "f"]Bir işlevde olduğu gibi [String], bunun tür çıkarımıyla hala sorun yaşayacağını döndüren bir şeye sahip olsaydınız mı?
takoz

10

Bu sorun 10 kez oldu, 8 kez gerçek bir cihaz bağladığımda ve simülatörde çalışmadığımda oldu.

Çözümümün iyi olup olmadığından pek emin değilim, ancak benim için sorunun simülatör ile gerçek bir cihaz arasında geçiş yapmaktan kaynaklandığına inanıyorum. Garip gelebilir ama sanki önbellek dosyaları arasında parazit yaratıyor gibiydi .

Sorunumu ne çözdü:

  • Derleme Klasörünü Temizle: (Xcode üzerinde)Alt + Shift + Command + K
  • İçeriği ve Ayarları Sıfırla: (Simülatörde) Command + Shift + K.
  • Normalden biraz daha uzun süre bekledim ve Xcode'u sürekli tıklamalarla aşırı yükledi

Yani temel olarak herhangi bir yeni cihazda çalıştırmayı denemeden önce, herhangi bir önbelleği silin.

DÜZENLE

Herhangi bir cihaz bağlantısı olmadan sorun yaşadım. Sadece Xcode'dan çıktım ve tekrar açtım ve sorun ortadan kalktı. Tahminime göre , yeni kodu birleştirme / getirdikten sonra yeniden indeksleme sorunu olabileceğinden emin değilim .


Bunun işe yaramasını diledim çünkü çaresizim. Ne yazık ki, kodlamaya başladıktan dakikalar sonra tekrar kontrolden çıkmaya başlıyor.
Bay T

Emin değilim ama bazen sadece dalları değiştirmek, yukarı akıştan çekmek sorunumu çözdü. Demek istediğim, kabul edilen cevabın önerdiği şeyi yapmıyorum ve yine de sorunum bir şekilde çözüldü, henüz çözemedim: /
Honey

4

SourceKitService'in 13GB'a kadar bellek kullanmasına neden olan başka bir sorunu çözdüm ...

String (çok sayıda argüman içeren biçim satırı:

return String(format: "%d,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", samples.count,sum1.x,sum1.y,sum1.z,sum1.rx,sum1.ry,sum1.rz,sum2.x,sum2.y,sum2.z,sum2.rx,sum2.ry,sum2.rz,sum3.x,sum3.y,sum3.z,sum3.rx,sum3.ry,sum3.rz)

bununla değiştirildiğinde iyi çalıştı (bellek oluşumu ve normal CPU tüketimi yok)

    var output: String = ""

    output += String(format: "%d,", samples.count)
    output += String(format: "%.3f,%.3f,%.3f,", sum1.x, sum1.y, sum1.z)
    output += String(format: "%.3f,%.3f,%.3f,", sum1.rx, sum1.ry, sum1.rz)
    output += String(format: "%.3f,%.3f,%.3f,", sum2.x, sum2.y, sum2.z)
    output += String(format: "%.3f,%.3f,%.3f,", sum2.rx, sum2.ry, sum2.rz)
    output += String(format: "%.3f,%.3f,%.3f,", sum3.x, sum3.y, sum3.z)
    output += String(format: "%.3f,%.3f,%.3f", sum3.rx, sum3.ry, sum3.rz)

    return output

4
Sorunun bu kod parçası olduğunu nasıl anladınız?
KK

3

Xcode 9 ile bu sorunla karşılaştım ve birkaç çözüm araştırdım. Benim için Kaynak Kontrolünü devre dışı bırakmak işe yaramış gibi görünüyordu.

Xcode -> Preferences -> Source Control -> uncheck "Enable Source Control"

Bu işe yaramazsa, terminalde renice komutunu kullanmanızı tavsiye ederim . Daha fazlası burada

Kaynak Kontrolünü devre dışı bırakma

Denediğim ancak yardımcı olmadığım diğer adımlar:

  1. Xcode'u Kapat -> Türetilmiş Verileri Sil
  2. bisiklet makinesi
  3. "temiz" proje

2

Benim için Türetilmiş Verileri silmek için çalıştı. Menüden 'Ürün'ü seçin ve Alt tuşunu basılı tutun ve' Yapı Klasörünü Temizle'yi seçin. Kısayol: Alt + Shift + Command + K


2
  1. Xcode'dan çık
  2. Terminalde Çalıştır:

rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache/*


LNI'nin kabul ettiği cevapla bunun arasındaki farka dikkat edin:

  1. Çarpmamak, çarpmamak her zaman daha iyidir. Özellikle Xcode süreçleri / bileşenleri söz konusu olduğunda.
  2. Bir Apple geliştiricisi değilim, ancak önbelleği kısmen silmek bütünlüğünü bozabilir. Tüm önbelleği temizledikten sonra önemli bir gecikme fark etmedim.

2

Projemin uzun bir derlemesinde problemleri çözmek için 4 saat harcıyorum. İlk denemenin derlenmesi 42 dakika sürer.

/Users/myname/Library/Developer/Xcode/DerivedData/ModuleCache/Yeniden başlattıktan sonra @LNI tarafından önerildiği gibi tüm önbelleği temizliyorum SourceKitServiceve kod için birkaç değişiklik uyguluyorum :

1 ila

    var initDictionary:[String:AnyObject] = [
                    "details" : "",
                    "duration" : serviceDuration,
                    "name" : serviceName,
                    "price" : servicePrice,
                    "typeId" : typeID,
                    "typeName" : typeName,
                    "url" : "",
                    "serviceId" : serviceID,
                    "imageName" : ""
                ]

Nereden

    var initDictionary= [
                    "details" : "",
                    "duration" : serviceDuration,
                    "name" : serviceName,
                    "price" : servicePrice,
                    "typeId" : typeID,
                    "typeName" : typeName,
                    "url" : "",
                    "serviceId" : serviceID,
                    "imageName: "" ]

2)

            if let elem = obj.property,
                let elem2 = obj.prop2,
                etc
                 {
                 // do stuf here
            }

Nereden

           let value1 = obj.property ?? defaultValue

3)

İçin

           let serviceImages = images.filter { $0.serviceId == service.id }
           let sorted = serviceImages.sort { $0.sort > $1.sort }

Nereden

            let serviceImages = images.filter { $0.serviceId == service.id }. sort { $0.sort > $1.sort }

Sonuç olarak derleme süresi - 3 dakika, çok hızlı değil ama 42 dakika daha iyi.

Sonuç olarak, önce SourceKitService- ~ 5,2 Gb bellek alın ve ~ 0,37 Gb sonra

görüntü açıklamasını buraya girin


2

SourceKitService ile aynı sorunu yaşadım.

Çözdüm. DÖNGÜ İÇİN ASLA SUBVIEW EKLEMEYİN.

Kullandığım sorunu tespit etmek için: https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode


nasıl çözdün Alt görünümlerimi for döngüsü ile ekledim ve şimdi önbelleği temizlemek sorunu çözmüyor @Zhanserik
10donovanr

1
@ 10donovanr DÖNGÜ İÇİN ASLA SUBVIEW EKLEMEYİN. Bundan sonra CMD + SHITF + K ile uygulama önbelleğini temizlemeyi deneyin
Zhanserik

2

Veri türlerini belirtmeden veya [String: Any] ile hızlı bir şekilde sözlük oluşturmayın

'Herhangi' tipini kullanırsak, derleyici veri tipini kontrol etmek için sonsuz bir döngüye girebilir.

Herhangi bir derleme hatası yaratmaz, 'swift' ve 'SourceKitService' adlı görevler için çok fazla bellek alarak Mac'inizin 'hızlı kaynak dosyalarını derlerken' donmasına neden olur.


2

Böyle bir sorunla karşılaştım. Kaynak kit hizmeti 10 gb kullanım kullanıyordu. Aktivite monitöründeki hızlı işlem 6 GB'ın üzerinde kullanıma ulaşır Şu kodu kullanıyordum:

var ayrıntıları: [Dize: Herhangi] = ["1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "10": 10, "11": 11, "12": 12, "13": 13, "14": 14, "15": 15, "16": 16]

Bu sorunu çözmek için kodu aşağıdaki şekilde değiştirdim:

var ayrıntıları: [Dize: Herhangi] = [:]

ayrıntılar ["1"] = 1

ayrıntılar ["2"] = 2

ayrıntılar ["3"] = 3

ayrıntılar ["4"] = 4

ayrıntılar ["5"] = 5

ayrıntılar ["6"] = 6

ayrıntılar ["7"] = 7

ayrıntılar ["8"] = 8

ayrıntılar ["9"] = 9

ayrıntılar ["10"] = 10

ayrıntılar ["11"] = 11

ayrıntılar ["12"] = 12

ayrıntılar ["13"] = 13

ayrıntılar ["14"] = 14

ayrıntılar ["15"] = 15

ayrıntılar ["16"] = 16


Adamım .... Kimin aklına gelirdi ki .... Tam olarak benzer bir kodum vardı ve SourceKitService'in CPU'nun hayatını emmesini sağladı. Kodu değiştirmek onu ortadan kaldırır.
AnBisw

2

Sorun hala XCode 10.0'da ortaya çıkmaktadır. Bunu, Kaynak Kontrolü seçeneklerinde "Kaynak Kontrolü değişikliklerini göster" seçeneğini devre dışı bırakarak düzeltebilirsiniz.

görüntü açıklamasını buraya girin


Soğuk, ancak Xcode öğütülmesi durma noktasına gelirse gerekenden daha az.
Shayne

1

Aynı sorunla karşı karşıya Xcode 7.2 (7C68)

Çözüm, sınıfımın tanımında sahip olduğu bir protokol yöntemini uygulamaktı.


1

Bu hala xcode Sürüm 7.3.1'de (7D1014) bir sorundur, benim için neden, LNI'nin belirttiği gibi, aslında çok uzun olmayan çok uzun bir diziydi. Diziyi aşağıdaki gibi çeşitli dizilere bölerek sorunumu çözdüm:

let firstLevel = [
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0],
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0],
            [1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0]
        ]
        let secondLevel = [
            [0, 0, 0, 0, 0],
            [0, 1, 0, 1, 0],
            [0, 0, 0, 0, 0],
            [0, 1, 0, 1, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0]
        ]
        let thirdLevel =     [
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 1, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0]
        ]
        let map = [firstLevel, secondLevel, thirdLevel]

1

XCode 8.2.1 (8C1002) ve aşağıdaki kodla aynı sorunu yaşadım:

import UIKit
import AVFoundation
import Photos
import CoreMotion
import Foundation


class TestViewController: UIViewController
{
    let movieFileOutput = AVCaptureMovieFileOutput()


var anz_total_frames = 0, anz_total_miss = 0

@IBOutlet weak var tfStatistics: UITextView!


func showVideoStatistics()
{
    let statisticText:String =             "frames: \(self.anz_total_frames)" + String.newLine +

        "frames/s: \(self.anz_total_frames / self.movieFileOutput.recordedDuration.seconds)" + String.newLine +

        "miss: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
    "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine +
        "nicht erkannt: " + formatText4FramesPercent(self.anz_total_miss) + String.newLine


    self.tfStatistics.text = statisticText
}

func formatText4FramesPercent(_ anz:Int) -> String
    {
        let perc = Double(anz)*100.0/Double(anz_total_frames)
        return String(perc.format(".1") + "%")
    }
}

ve bu uzantılar:

extension String {
    var localized: String {
        return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
    }

    static var newLine: String {
        return "\r\n"
    }
}

extension Int {
    func format(_ f: String) -> String {
        return String(format: "%\(f)d", self)
    }
}

extension Double {
    func format(_ f: String) -> String {
        return String(format: "%\(f)f", self)
    }
}

TestViewController'da bu satırı yorumlayarak çözdüm:

        "frames/s: \(self.anz_total_frames / self.movieFileOutput.recordedDuration.seconds)" + String.newLine +

Onu bulmam bir saatten fazla sürdü, umarım bir başkasına biraz zaman kazandırabilir. Apple'a 30103533 numaralı bir hata raporu verdim


1

Projeyi hızlı 3'e taşıdıktan sonra aynı problemle karşılaşıyordum, çözümün zaman aldığını buldum, çünkü veri türü olmadan oluşturulan sözlükler ve diziler.


1

Bu davranış projemde yanlışlıkla kendisinden miras kalan bir sınıfı ilan ettiğimde ortaya çıktı. Swift 3 kullanarak Xcode 8.2.1.


1

Bir de bu sorunu yaşadım, benim durumumda şöyle büyük bir dizi ilan ediyordum:

var myArray: [(String, Bool?)]?
myArray = [("someString", someBool),
("someString", someBool),
("someString", someBool),
("someString", someBool),
("someString", someBool)
.
.
("someString", someBool)]

Sorunu, aynı anda hepsi yerine satır başına 1 öğe ekleyerek çözdüm:

var myArray = [(String, Bool?)]()
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
myArray.append(("someString", someBool))
.
.
.

bu sorunu çözdü.


1

Objective-C projeleri için:

Ben de aynı sorunu yaşadım ve projemizde sıfır Swift kodu var, bu yüzden tür çıkarım denetleyicisi değildi.

Buradaki diğer tüm çözümleri denedim ve hiçbir şey işe yaramadı - SONUNDA benim için düzeltilen şey, bilgisayarı kurtarma modunda yeniden başlatmak ve disk onarımını çalıştırmaktı. Nihayet yeniden huzur içinde çalışabilirim!

Sanırım bunun nedeni bazı bozuk sembolik bağlar, muhtemelen birbirine işaret ediyor ve hizmetin sonsuz bir döngü içinde dönmesini sağlıyor.


1

Xcode 8.2.1 ile benzer bir sorun yaşıyorum - 1.000'den fazla kod satırından oluşan bir bölüm / * * / aracılığıyla yorumlanmış. Bölümü yorumlamak soruna neden oldu ve yorumlanmış kodu kaldırmak sorunu çözdü.


1

Birden çok şeyi birleştiren benzer bir şeyle karşılaştım? operatörler isteğe bağlı dize değerleri için bir varsayılan sağlar.

Güvenilir 2010 ortalarında MacBook Pro'mdaki fan çok çalışmaya başladığında aşağıdaki hata ayıklama kodunu deniyordum. SourceKitService alabildiği her CPU döngüsünü emiyordu. Soruna neden olan satırı yorumlamak ve yorumunu kaldırmak, SourceKitService'in neye boğulduğunu açıkça ortaya koydu. Birden fazla kullanıyor gibi görünüyor ?? bir varsayılan sağlamak için operatör eski bir makinede bir sorundur. Etrafındaki çalışma, bunu yapmamaktır. Bazı çirkin hata ayıklama kodunu daha da çirkin hale getiren birden çok atamaya bölün.

placeMark, CLPlacemark'ın bir örneğidir. Burada kullanılan özellikler isteğe bağlı dizeler döndürür.

OS 10.12.4 (16E195) üzerinde çalışan Xcode Sürüm 8.3.2 (8E2002) kullanıyordum

// one term is not an issue
let debugString1 = (placeMark.locality ?? "")

// two terms pushes SourceKitService CPU use to 107% for about 60 seconds then settles to 0%
let debugString1 = (placeMark.locality ?? "")  + ", " +  (placeMark.administrativeArea ?? "") 

// three terms pushes SourceKitService CPU use to 187% indefinitely 
let debugString1 = (placeMark.locality ?? "")  + ", " +  (placeMark.administrativeArea ?? "")  + (placeMark.postalCode ?? "")

// ugly but it's safe to use
var debugString1 = placeMark.locality ?? ""
debugString1 = debugString1 + ", " +  (placeMark.administrativeArea ?? "")
debugString1 = debugString1 + " " + (placeMark.postalCode ?? "")

Bunun dize birleştirme ile ilgili bir sorun olduğuna inanıyorum, değil ??. Onun "\() \()" yerine (string interpolation) ile denemeye değer
Brooks DuBois

1

Uzun Dizileri İşlevlere dönüştürmek benim için sorunu çözüyor gibi görünüyor:

var color: [UIColor] {
    return [
        UIColor(...),
        UIColor(...),
        ...
    ]
}

to:

func color() -> [UIColor] {
    return [
        UIColor(...),
        UIColor(...),
        ...
    ]
}

1

terminalde çalıştır:

killall Xcode
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
open /Applications/Xcode.app

bu takma adı kullanarak bir terminal komutu da oluşturabilirsiniz:

echo alias xcodeFix='killall Xcode;rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache;open /Applications/Xcode.app' >> ~/.profile
source ~/.profile

ve sonra sadece koş

xcodeFix

1

XCode 11.4.1'de bir SwiftUI @ViewBuilder bloğu içinde @dynamicMemberLookup aboneliklerini çağırırken başıma geldi.


XCode 11.6'da da benzer bir sorunla karşılaştım. Gözlemci sınıfı oluşturuldu. "isteğe bağlı" öğeleri yayınlamaya (yayınlamaya) çalışıyordu. Sınıfta AVPlayer (isteğe bağlı) durumunu gözlemliyordum. SourceKitService tam bellek kullanıyordu, bu yüzden Mac takılmış gibiydi. 'İsteğe bağlı' öğeleri değiştirdim ve kaldırdım. XCode bir sonraki sürümde hatayı çözecek olabilir. Geliştirme sırasında belleği izlemek için Uygulama -> Yardımcı Programların "Etkinlik İzleyicisi" ni tutabiliriz :)
SHS

0

https://www.logcg.com/en/archives/2209.html

SourceKitService, Swift'in tür çıkarım çalışmasının sorumluluğunu üstlendi.

private lazy var emojiFace = ["?", "?", "?", "?"]

açıkça yazmak için değiştirin

private lazy var emojiFace:[String] = ["?", "?", "?", "?"]

SourceKitService CPU kullanımı hemen açılır。


0

Aynı sorunu yaşadım ve bunun nedeni bir programlama hatasıydı.

Benim durumumda, karşılaştırılabilir ve eşitlenebilir protokolleri uyguluyordum ve lhs.param ve rhs.param, lhs ve rhs sınıflarının parametrelerine karşılık gelmedi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.