Hello
The texture is a jpg file 32x32 pixels (and even that is cached in case of multiple graphics are added). The problem is not the graphics, it's the text.
Unfortunately the runtime for scenes(3D) doesn't support the labeling engine (I wish it did), so the labeling happens in a graphics overlay. Yes it adds 300MB additional RAM to the app (say it's ~200MB becomes 500MB).
Here's some code:
TextSymbol textSymbol = new TextSymbol //create text
{
Color = System.Drawing.Color.White,
Size = 18,
Text = location.Name, //localized string
OffsetY = 42.0,
HorizontalAlignment = Esri.ArcGISRuntime.Symbology.HorizontalAlignment.Center,
VerticalAlignment = Esri.ArcGISRuntime.Symbology.VerticalAlignment.Top
};
Graphic textGraphic = new Graphic(point, textSymbol); //create text graphic
_graphicsOnScene.Graphics.Add(locationGraphic); //add pin graphic in collection
_graphicsOnScene.Graphics.Add(textGraphic); //add location name in collection
_sceneView.GraphicsOverlays.Add(_graphicsOnScene); //add collection in sceneview
I converted the text graphic in a DistanceCompositeSceneSymbol, just to delay the rendering of the label and observe. The moment the text is rendered, the memory spikes.
I'll experiment with more graphics on the map.