Hello,

In my usage of igraph, I consistently extract attribute information from vertices in my graphs. These graphs can have an upwards of 1e6 vertices, with typically a degree of 2-3 per vertex.

I’ve found that it’s faster to extract vertex attribute information from vertices by first creating a subgraph of the vertices and then pulling information from them from that subgraph. Mainly, I’m posting because I want to ask if this observation in typical? Am I doing something incorrectly to be causing the vertex retrieval to be so slow?

See a minimally reproducible example below.

```
import igraph as ig
import numpy as np
from time import perf_counter as pf
### Graph setup ###
vs = 1000000
es = 1000000
edges = np.random.randint(0, vs, (es, 2))
g = ig.Graph()
g.add_vertices(vs)
g.vs['radius'] = np.random.randint(0, 20, vs)
g.add_edges(edges)
g.vs['coords'] = np.random.randint(0,1000, (vs, 3))
components = g.components()
### V selection attribute extraction ###
t = pf()
for component in components:
vs = g.vs[component]
coords = vs['coords']
print (f"Vertex isolation speed: {pf() - t:.2f} s")
### Subgraph attribute extraction ###
t = pf()
for component in components:
c_graph = g.subgraph(component)
coords = c_graph.vs['coords']
print (f"Subgraph isolation speed: {pf() - t:.2f} s")
```

And an example speed test on my computer.

```
Vertex isolation speed: 169.08 s
Subgraph isolation speed: 33.84 s
```