potiuk commented on code in PR #32612:
URL: https://github.com/apache/airflow/pull/32612#discussion_r1263960362


##########
tests/cli/test_cli_parser.py:
##########
@@ -268,3 +269,13 @@ def 
test_invalid_choice_raises_for_export_format_in_db_export_archived_command(
             f"--export-format: invalid choice: '{export_format}' "
             "(choose from 'csv'), see help above.\n"
         )
+
+    def test_cli_run_time(self):
+        setup_code = "import subprocess"
+        timing_code = 'subprocess.run(["airflow", "--help"])'
+        # Limit the number of samples otherwise the test will take a very long 
time
+        num_samples = 3
+        threshold = 3.5
+        timing_result = timeit.timeit(stmt=timing_code, number=num_samples, 
setup=setup_code) / num_samples
+        # Average run time of Airflow CLI should at least be within 3.5s
+        assert timing_result < threshold

Review Comment:
   We should have different timings for different commands IMHO. And I agree 
with @uranusjr that if basic commands take > 3 seconds, this is wrong. Some of 
them ("config" that I worked on recently in 
https://github.com/apache/airflow/pull/32604 need to initialize providers now 
(and I deliberately introduced lazy-loading the providers-manager for config in 
my change  to only run it when actually needed. But maybe this is an indication 
that we still need to improve some of that . @uranusjr had done a lot of those 
lazy-loading things to make the time smaller for CLIs and some initialization, 
but 3 seconds for "most" commands seems really off.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to