docstr: Benchmark how long it takes for each update to resolve fully, using
  the on update callback that forces resolution of updates across
  25 views.
docstr_tok: ["Benchmark","how","long","it","takes","for","each","update","to","resolve","fully",",","using","the","on","update","callback","that","forces","resolution","of","updates","across","25","views","."]
code: def benchmark_view_two_updates(self):
      """Benchmark how long it takes for each update to resolve fully, using
      the on update callback that forces resolution of updates across
      25 views."""
      table = Table(self._schema)
      views = [
          table.view(
              group_by=["State", "City"],
              split_by=["Category", "Sub-Category"],
          )
          for i in range(25)
      ]
      for v in views:
          v.on_update(empty_callback)
      update_data = self._get_update_data(1000)
  
      def resolve_update():
          table.update(update_data)
          table.size()
  
      func = Benchmark(resolve_update, meta=make_meta("update", "two"))
      setattr(self, "update_two", func)
  
imports: import os
  from functools import partial
  from bench import Benchmark, Suite, Runner
  from perspective import Table
  import perspective
  import logging
label_desc: Use image node_id 11 for calling the PerspectiveBenchmark obj's underlying member method code with example usage: obj.benchmark_view_two_updates() without return types