Uploaded image for project: 'Maistra'
  1. Maistra
  2. MAISTRA-1540

Separate v8 from proxy build

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Won't Do
    • Icon: Minor Minor
    • maistra-2.1.0
    • None
    • envoy, proxy
    • None

      Currently proxy (this is part of Envoy's dependency actually) downloads and builds chromium v8 engine. This takes a great amount of time.

      I made some experiments on taking v8 out from build dependencies and putting it into its own repository.

      • Move v8 to its own repository
      • Also move its build dependency GN to its own repository

      Profiling data comparison - build done on my laptop:

      === Maistra1.1 PHASE SUMMARY INFORMATION ===
      
      Total launch phase time         6.417 s    0.32%
      Total init phase time           0.352 s    0.02%
      Total loading phase time        1.052 s    0.05%
      Total analysis phase time       5.334 s    0.26%
      Total preparation phase time    0.015 s    0.00%
      Total execution phase time   2022.587 s   99.35%
      Total finish phase time         0.050 s    0.00%
      ------------------------------------------------
      Total run time               2035.810 s  100.00%
      
      Critical path (1091.393 s):
             Time Percentage   Description
       1087.906 s   99.68%   action 'Executing genrule @com_googlesource_chromium_v8// build'
          25.5 ms    0.00%   action 'Compiling external/envoy/source/common/common/version_linkstamp.cc'
          3.462 s    0.32%   action 'Linking src/envoy/envoy'
          0.10 ms    0.00%   runfiles for //src/envoy envoy
      
      
      
      === Maistra_no_v8 PHASE SUMMARY INFORMATION ===
      
      Total launch phase time         6.507 s    0.48%
      Total init phase time           0.302 s    0.02%
      Total loading phase time        1.036 s    0.08%
      Total analysis phase time       4.525 s    0.33%
      Total preparation phase time    0.014 s    0.00%
      Total execution phase time   1349.579 s   99.09%
      Total finish phase time         0.053 s    0.00%
      ------------------------------------------------
      Total run time               1362.018 s  100.00%
      
      Critical path (145.977 s):
             Time Percentage   Description
          2.99 ms    0.00%   action 'Writing script external/envoy/bazel/foreign_cc/gperftools_build/logs/Configure_script.sh'
        103.407 s   70.84%   action 'CcConfigureMakeRule external/envoy/bazel/foreign_cc/gperftools_build/include'
          0.03 ms    0.00%   null for @envoy//bazel/foreign_cc gperftools
          0.03 ms    0.00%   null for @envoy//source/common/profiler profiler_lib
          0.03 ms    0.00%   null for @envoy//source/server/http admin_lib
          0.04 ms    0.00%   null for @envoy//source/server server_lib
         38.747 s   26.54%   action 'Compiling external/envoy/source/server/server.cc'
          26.7 ms    0.02%   action 'Compiling external/envoy/source/common/common/version_linkstamp.cc'
          3.793 s    2.60%   action 'Linking src/envoy/envoy'
          0.04 ms    0.00%   runfiles for //src/envoy envoy
      
      
      
      

      Gain:
      LOCAL 1.1: 2035 seconds
      LOCAL no-v8: 1362 seconds
      GAIN: 33%

      COPR 1.1: 11760 seconds (196 min, 3.26h)
      COPR no-v8: 9180 seconds (153 min, 2.55h)
      GAIN: 22%

      Source tarball size reduced from 358 to 309 M

              jsantana@redhat.com Jonh Wendell
              jsantana@redhat.com Jonh Wendell
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: