code: def test_batch_feat_perf():
      batch_size_list = [
          5,
          10,
          20,
          40,
          60,
          100,
          150,
          200,
          400,
          600,
          800,
          1000,
      ]
      times = []
      for bs in batch_size_list:
          (
              edge_features,
              edge_features_2,
              graphs,
              node_features,
              node_features_2,
          ) = generate_sequential_graphs(bs=bs)
          batch = to_batch(graphs)
          new_batch_edge_features = torch.stack(
              edge_features_2
          ).unsqueeze(-1)
          start = time.time()
          batch.batch_edge_features[
              "edge_feat"
          ] = new_batch_edge_features
          time_elapsed = time.time() - start
          times.append(time_elapsed)
  
      plt.plot(batch_size_list, times)
      plt.title("Time vs batch size")
      plt.show()
  
imports: import gc
  import time
  import matplotlib.pyplot
  import torch
  import torch.nn
  import pytest
  from ...data.data import GraphData, from_batch, from_dgl, to_batch
  from ...data.utils import EdgeNotFoundException, SizeMismatchException
label_desc: Use image node_id 16 for calling a global function with example usage: test_batch_feat_perf() without return types