Mientras usaba la biblioteca react-native-svg para crear gráficos en una aplicación macOS, encontré un problema relacionado con el rendimiento o una pérdida de memoria, no sé cómo debería llamarlo.
Al iterar sobre una matriz y asignar valores a un componente <SVGText> , la aplicación se congela y el uso de memoria aumenta (>4 gb). Traté de superar esto, generando el svg usando el componente, componente independiente para texto, pero además probé que el problema proviene de un código de nivel inferior.
El fragmento:
<Svg width={width} height={height}> <G y={10}> <Path d={`${this.linePath}`} fill="none" stroke="white" strokeWidth="1.5" strokeMiterlimit="20" /> </G> <G y={40}> {this.xTicks.map((tick, i) => ( <G key={i}> <Line x1={tick.x} x2={tick.x} y1={tick.y} y2={tick.y + 5} stroke="grey" /> <SVGText originX={tick.x} originY={tick.y + 20} fill="pink" textAnchor="middle" fontSize={8}> {tick.label} </SVGText> </G> ))} </G> </Svg> Como no tengo grandes habilidades en lenguajes de bajo nivel y no sé cómo funciona internamente react-native-svg y estoy usando un sistema relativamente nuevo (M1) junto con NSPopover en la bandeja del sistema, supongo que es relativamente un problema único
¿Cómo crees que puedo depurar esto?
Reaccionar salida de información nativa:
System: OS: macOS 12.1 CPU: (10) arm64 Apple M1 Max Memory: 366.59 MB / 32.00 GB Shell: 5.8 - /bin/zsh Binaries: Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node Yarn: Not Found npm: 8.1.2 - ~/.nvm/versions/node/v16.13.1/bin/npm Watchman: 2022.02.14.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.11.2 - /Users/paul/.rvm/gems/ruby-2.7.4/bin/pod SDKs: iOS SDK: Platforms: DriverKit 21.2, iOS 15.2, macOS 12.1, tvOS 15.2, watchOS 8.3 Android SDK: Not Found IDEs: Android Studio: Not Found Xcode: 13.2.1/13C100 - /usr/bin/xcodebuild Languages: Java: 11.0.12 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: 17.0.2 => 17.0.2 react-native: 0.67.3 => 0.67.3 react-native-macos: ^0.66.21 => 0.66.21 npmGlobalPackages: *react-native*: Not Foundversión de react-native-svg: 12.1.1