add benchmark

This commit is contained in:
Eugene Yurtsev
2025-03-17 16:45:02 -04:00
parent 80d61a2600
commit 80c3ccba7b
2 changed files with 46 additions and 0 deletions
+7
View File
@@ -7,6 +7,7 @@ from uvloop import new_event_loop
from bench.fanout_to_subgraph import fanout_to_subgraph, fanout_to_subgraph_sync
from bench.react_agent import react_agent
from bench.sequential import create_sequential
from bench.wide_state import wide_state
from langgraph.checkpoint.memory import MemorySaver
from langgraph.pregel import Pregel
@@ -203,6 +204,12 @@ benchmarks = (
]
},
),
(
"sequential_graph_200_nodes",
create_sequential(200).compile(),
create_sequential(200).compile(),
{"messages": []}, # Empty list of messages
),
)
+39
View File
@@ -0,0 +1,39 @@
"""Create a sequential no-op graph consisting of a few hundred nodes."""
from langgraph.graph import MessagesState, StateGraph
def create_sequential(number_nodes) -> StateGraph:
"""Create a sequential no-op graph consisting of a few hundred nodes."""
builder = StateGraph(MessagesState)
async def noop(state: MessagesState) -> None:
"""No-op function."""
pass
prev_node = "__start__"
for i in range(number_nodes):
name = f"node_{i}"
builder.add_node(name, noop)
builder.add_edge(prev_node, name)
prev_node = name
builder.add_edge(prev_node, "__end__")
return builder
if __name__ == "__main__":
import asyncio
import uvloop
graph = create_sequential(200).compile()
input = {"messages": []} # Empty list of messages
config = {"recursion_limit": 20000000000}
async def run():
len([c async for c in graph.astream(input, config=config)])
uvloop.install()
asyncio.run(run())