Hacker News

ನಾವು ಬಹು-ಥ್ರೆಡ್ ರಸ್ಟ್ನೊಂದಿಗೆ ಸಿಂಗಲ್-ಥ್ರೆಡ್ C++ ಅನ್ನು ಇಂಟರ್ಫೇಸ್ ಮಾಡಿದ್ದೇವೆ

ನಾವು ಬಹು-ಥ್ರೆಡ್ ರಸ್ಟ್ನೊಂದಿಗೆ ಸಿಂಗಲ್-ಥ್ರೆಡ್ C++ ಅನ್ನು ಇಂಟರ್ಫೇಸ್ ಮಾಡಿದ್ದೇವೆ ಇಂಟರ್‌ಫೇಸ್‌ನ ಈ ಸಮಗ್ರ ವಿಶ್ಲೇಷಣೆಯು ಅದರ ಪ್ರಮುಖ ಅಂಶಗಳು ಮತ್ತು ವಿಶಾಲವಾದ ಪರಿಣಾಮಗಳ ವಿವರವಾದ ಪರೀಕ್ಷೆಯನ್ನು ನೀಡುತ್ತದೆ. ಗಮನದ ಪ್ರಮುಖ ಕ್ಷೇತ್ರಗಳು ಚರ್ಚೆಯ ಕೇಂದ್ರಗಳು: ಕೋರ್ ಮೆಚ್...

1 min read Via antithesis.com

Mewayz Team

Editorial Team

Hacker News
ಸಂಪೂರ್ಣ SEO ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ಇಲ್ಲಿದೆ:

ನಾವು ಮಲ್ಟಿ-ಥ್ರೆಡ್ ರಸ್ಟ್‌ನೊಂದಿಗೆ ಏಕ-ಥ್ರೆಡ್ C++ ಅನ್ನು ಇಂಟರ್‌ಫೇಸ್ ಮಾಡಿದ್ದೇವೆ

ಮಲ್ಟಿ-ಥ್ರೆಡ್ ರಸ್ಟ್‌ನೊಂದಿಗೆ ಏಕ-ಥ್ರೆಡ್ C++ ಕೋಡ್ ಅನ್ನು ಇಂಟರ್‌ಫೇಸ್ ಮಾಡುವುದು ಮಾತ್ರ ಸಾಧ್ಯವಿಲ್ಲ — ಇದು ಸಂಪೂರ್ಣ ಪುನಃ ಬರೆಯದೆಯೇ ಪರಂಪರೆಯ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಆಧುನೀಕರಿಸುವ ಅತ್ಯಂತ ಪ್ರಾಯೋಗಿಕ ವಿಧಾನಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. Mewayz ನಲ್ಲಿ, 138,000 ಬಳಕೆದಾರರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸಲು ನಮ್ಮ 207-ಮಾಡ್ಯೂಲ್ ವ್ಯಾಪಾರ OS ಅನ್ನು ಸ್ಕೇಲ್ ಮಾಡುವಾಗ ನಾವು ಈ ನಿಖರವಾದ ಸವಾಲನ್ನು ನಿಭಾಯಿಸಿದ್ದೇವೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳು ಸಿಸ್ಟಂಗಳ ಪರಸ್ಪರ ಕಾರ್ಯಸಾಧ್ಯತೆಯ ಬಗ್ಗೆ ನಾವು ಹೇಗೆ ಯೋಚಿಸುತ್ತೇವೆ ಎಂಬುದನ್ನು ಮೂಲಭೂತವಾಗಿ ಬದಲಾಯಿಸಿದೆ.

ನೀವು ಏಕ-ಥ್ರೆಡ್ C++ ಅನ್ನು ಮಲ್ಟಿ-ಥ್ರೆಡ್ ರಸ್ಟ್‌ನೊಂದಿಗೆ ಏಕೆ ಇಂಟರ್ಫೇಸ್ ಮಾಡುತ್ತೀರಿ?

ಹೆಚ್ಚಿನ ಉತ್ಪಾದನಾ ವ್ಯವಸ್ಥೆಗಳು ಯುದ್ಧ-ಪರೀಕ್ಷಿತ C++ ಕೋಡ್ ಅನ್ನು ವರ್ಷಗಳವರೆಗೆ ಸಾಗಿಸುತ್ತವೆ. ರಸ್ಟ್‌ನಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಪುನಃ ಬರೆಯುವುದು ಕಾಗದದ ಮೇಲೆ ಆಕರ್ಷಕವಾಗಿ ಧ್ವನಿಸುತ್ತದೆ, ಆದರೆ ಇದು ಬೃಹತ್ ಅಪಾಯ ಮತ್ತು ತಿಂಗಳುಗಳ ಎಂಜಿನಿಯರಿಂಗ್ ಸಮಯವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಪ್ರಾಯೋಗಿಕ ವಿಧಾನವು ಹೆಚ್ಚುತ್ತಿರುವ ಅಳವಡಿಕೆಯಾಗಿದೆ - ರಸ್ಟ್‌ನ ಮಾಲೀಕತ್ವದ ಮಾದರಿಗೆ ಏಕಕಾಲಿಕ-ಭಾರೀ ಕೆಲಸದ ಹೊರೆಗಳನ್ನು ಆಫ್‌ಲೋಡ್ ಮಾಡುವಾಗ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ C++ ತರ್ಕವನ್ನು ಸುತ್ತುವುದು.

ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಕೋರ್ ಬಿಸಿನೆಸ್ ಲಾಜಿಕ್ ಮಾಡ್ಯೂಲ್‌ಗಳು ಏಕ-ಥ್ರೆಡ್ C++ ನಲ್ಲಿ ವರ್ಷಗಳಿಂದ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆ. ಅವರು ಅನುಕ್ರಮ ಕಾರ್ಯ ಪ್ರಕ್ರಿಯೆ, ಡಾಕ್ಯುಮೆಂಟ್ ಉತ್ಪಾದನೆ ಮತ್ತು ಹಣಕಾಸಿನ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಿದರು. ಆದರೆ ನಮ್ಮ ಬಳಕೆದಾರ ಬೇಸ್ 100K ಹಿಂದೆ ಬೆಳೆದಂತೆ, ನಮಗೆ ಸಮಾನಾಂತರ ಡೇಟಾ ಸಂಸ್ಕರಣೆ, ಏಕಕಾಲಿಕ API ನಿರ್ವಹಣೆ ಮತ್ತು ಸುರಕ್ಷಿತ ಹಂಚಿಕೆಯ-ರಾಜ್ಯ ನಿರ್ವಹಣೆಯ ಅಗತ್ಯವಿದೆ. ರಸ್ಟ್‌ನ ಕಳುಹಿಸು ಮತ್ತು Sync ಗುಣಲಕ್ಷಣಗಳು ನಮಗೆ ಕಂಪೈಲ್-ಟೈಮ್ ಕನ್ಕ್ಯುರೆನ್ಸಿ ಗ್ಯಾರಂಟಿಗಳನ್ನು ನೀಡಿದ್ದು, ವ್ಯಾಪಕವಾದ ಹಸ್ತಚಾಲಿತ ಆಡಿಟಿಂಗ್ ಇಲ್ಲದೆ C++ ಸರಳವಾಗಿ ನೀಡಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಪ್ರಮುಖ ಪ್ರೇರಣೆಯು ಅಪಾಯದ ಕಡಿತವಾಗಿದೆ. ನೀವು ಏನು ಕೆಲಸ ಮಾಡುತ್ತೀರೋ ಅದನ್ನು ನೀವು ಇಟ್ಟುಕೊಳ್ಳುತ್ತೀರಿ ಮತ್ತು ನೀವು ಯಾವ ಮಾಪಕಗಳನ್ನು ಸೇರಿಸುತ್ತೀರಿ - ನಿಮ್ಮ ಸಂಪೂರ್ಣ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಎಂದಿಗೂ ಪೂರ್ಣಗೊಳಿಸದ ವಲಸೆಯ ಮೇಲೆ ಜೂಜಿನ ಮಾಡದೆಯೇ.

FFI ಬೌಂಡರಿ ನಿಜವಾಗಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?

C++ ಮತ್ತು Rust ನಡುವಿನ ಫಾರಿನ್ ಫಂಕ್ಷನ್ ಇಂಟರ್‌ಫೇಸ್ (FFI) ಸಿ-ಹೊಂದಾಣಿಕೆಯ ಫಂಕ್ಷನ್ ಸಿಗ್ನೇಚರ್‌ಗಳ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ರಸ್ಟ್‌ನ extern "C" ಬ್ಲಾಕ್‌ಗಳು C++ ನೇರವಾಗಿ ಕರೆ ಮಾಡಬಹುದಾದ ಕಾರ್ಯಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ ಮತ್ತು ಪ್ರತಿಯಾಗಿ. ರಸ್ಟ್‌ನ ಬಹು-ಥ್ರೆಡ್ ರನ್‌ಟೈಮ್ ಏಕ-ಥ್ರೆಡ್ C++ ಕೋಡ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಆಹ್ವಾನಿಸಲು ಅಗತ್ಯವಿರುವಾಗ ನಿರ್ಣಾಯಕ ಸವಾಲು ಹೊರಹೊಮ್ಮುತ್ತದೆ.

ನಾವು ಇದನ್ನು ಡೆಡಿಕೇಟೆಡ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಬಳಸಿ ಪರಿಹರಿಸಿದ್ದೇವೆ:

  • ಥ್ರೆಡ್-ಸೀಮಿತ C++ ಎಕ್ಸಿಕ್ಯೂಟರ್: ಎಲ್ಲಾ C++ ಕರೆಗಳನ್ನು ಸಂದೇಶ-ಪಾಸಿಂಗ್ ಚಾನಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದೇ ಮೀಸಲಾದ ಥ್ರೆಡ್ ಮೂಲಕ ಫನೆಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಸಿಂಗಲ್-ಥ್ರೆಡ್ ಅಸ್ಥಿರತೆಯನ್ನು ಎಂದಿಗೂ ಉಲ್ಲಂಘಿಸುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
  • ರಸ್ಟ್ ಅಸಿಂಕ್ ಬ್ರಿಡ್ಜ್ ಲೇಯರ್: ಟೋಕಿಯೊ ಕಾರ್ಯಗಳು ಸಿ++ ಎಕ್ಸಿಕ್ಯೂಟರ್‌ಗೆ ಕೆಲಸವನ್ನು ಸಲ್ಲಿಸುತ್ತವೆ ಮತ್ತು ಒನ್‌ಶಾಟ್ ಚಾನಲ್‌ಗಳ ಮೂಲಕ ಫಲಿತಾಂಶಗಳನ್ನು ನಿರೀಕ್ಷಿಸಿ ರಸ್ಟ್ ಸೈಡ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅಸಮಕಾಲಿಕವಾಗಿ ಇರಿಸುತ್ತದೆ.
  • ಅಪಾರದರ್ಶಕ ಪಾಯಿಂಟರ್ ನಿರ್ವಹಣೆ: C++ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ರಸ್ಟ್ ಸ್ಟ್ರಕ್ಟ್‌ಗಳಲ್ಲಿ ಸುತ್ತಿಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಅದು Drop ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಇದು ಭಾಷೆಯ ಗಡಿಯುದ್ದಕ್ಕೂ ಮೆಮೊರಿ ಸೋರಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ.
  • ಗಡಿಯಲ್ಲಿ ಧಾರಾವಾಹಿ: ಸಂಕೀರ್ಣ ಡೇಟಾ ರಚನೆಗಳನ್ನು FFI ಲೇಯರ್‌ನಲ್ಲಿ ಫ್ಲಾಟ್‌ಬಫರ್‌ಗಳಿಗೆ ಧಾರಾವಾಹಿ ಮಾಡಲಾಗಿದೆ, ದುರ್ಬಲವಾದ ಸ್ಟ್ರಕ್ಟ್ ಲೇಔಟ್ ಹೊಂದಾಣಿಕೆಯನ್ನು ತಪ್ಪಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಬದಿಯ ಸ್ವತಂತ್ರ ವಿಕಸನವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
  • ಪ್ಯಾನಿಕ್ ಐಸೋಲೇಶನ್: ರಸ್ಟ್‌ನ catch_unwind ಪ್ರತಿ FFI ಪ್ರವೇಶ ಬಿಂದುವನ್ನು ಸುತ್ತುತ್ತದೆ, ಇದರಿಂದ ಪ್ಯಾನಿಕ್ ಎಂದಿಗೂ ಭಾಷೆಯ ಗಡಿಯನ್ನು ದಾಟುವುದಿಲ್ಲ, ಅದು ವ್ಯಾಖ್ಯಾನಿಸದ ನಡವಳಿಕೆಯಾಗಿದೆ.

ಈ ನಮೂನೆಯು ನಮಗೆ ಬಹು-ಥ್ರೆಡ್ ರಸ್ಟ್‌ನ ಥ್ರೋಪುಟ್ ಅನ್ನು ಸಾಬೀತುಪಡಿಸಿದ C++ ಲಾಜಿಕ್‌ನ ವಿಶ್ವಾಸಾರ್ಹತೆಯೊಂದಿಗೆ ನೀಡಿತು - ಮೂಲ ವ್ಯವಹಾರ ನಿಯಮಗಳ ಒಂದು ಸಾಲನ್ನು ಪುನಃ ಬರೆಯದೆ.

ತಪ್ಪಿಸಲು ದೊಡ್ಡ ಮೋಸಗಳು ಯಾವುವು?

C++ ಕೋಡ್ ಇಲ್ಲದಿರುವಾಗ ಅದು ಥ್ರೆಡ್-ಸುರಕ್ಷಿತವಾಗಿದೆ ಎಂದು ಭಾವಿಸುವುದು ಅತ್ಯಂತ ಅಪಾಯಕಾರಿ ತಪ್ಪು. ಗ್ಲೋಬಲ್ ಸ್ಟೇಟ್, ಸ್ಟ್ಯಾಟಿಕ್ ವೇರಿಯೇಬಲ್‌ಗಳು ಮತ್ತು ಮರುಪ್ರವೇಶ ಮಾಡದ ಲೈಬ್ರರಿ ಕರೆಗಳು ಎಫ್‌ಎಫ್‌ಐ ಗಡಿಯುದ್ದಕ್ಕೂ ರಸ್ಟ್‌ನ ಕಂಪೈಲರ್ ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಾಗದ ಡೇಟಾ ರೇಸ್‌ಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತವೆ. ರಸ್ಟ್‌ನ ಸುರಕ್ಷತೆಯ ಖಾತರಿಗಳು ಅಸುರಕ್ಷಿತ ಬ್ಲಾಕ್‌ನಲ್ಲಿ ನಿಲ್ಲುತ್ತವೆ - ಒಳಗಿರುವ ಎಲ್ಲವೂ ನಿಮ್ಮ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ.

ಪ್ರಮುಖ ಒಳನೋಟ: ರಸ್ಟ್ ತನ್ನ ಸ್ವಂತ ಕೋಡ್‌ನಲ್ಲಿ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ, ಆದರೆ ನೀವು FFI ಗಡಿಯನ್ನು C++ ಗೆ ದಾಟಿದ ಕ್ಷಣದಲ್ಲಿ, C++ ಹೊಂದಿರುವ ಪ್ರತಿಯೊಂದು ಥ್ರೆಡ್-ಸುರಕ್ಷತೆಯ ಸಮಸ್ಯೆಯನ್ನು ನೀವು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತೀರಿ. ಆ ಗಡಿಯ ಸುತ್ತಲಿನ ವಾಸ್ತುಶಿಲ್ಪವು ಅದರ ಎರಡೂ ಬದಿಯಲ್ಲಿರುವ ಕೋಡ್‌ಗಿಂತ ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿದೆ.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

ಇನ್ನೊಂದು ಸಾಮಾನ್ಯ ಅಪಾಯವೆಂದರೆ ಜೀವಿತಾವಧಿ ನಿರ್ವಹಣೆ. C++ ಆಬ್ಜೆಕ್ಟ್‌ಗಳು ರಸ್ಟ್‌ನ ಎರವಲು ಪರೀಕ್ಷಕದಲ್ಲಿ ಭಾಗವಹಿಸುವುದಿಲ್ಲ. C++ ಇನ್ನೂ ಪಾಯಿಂಟರ್ ಅನ್ನು ಹೊಂದಿರುವಾಗ ರಸ್ಟ್ ಉಲ್ಲೇಖವನ್ನು ಬಿಟ್ಟರೆ, ರೋಗನಿರ್ಣಯ ಮಾಡಲು ಕ್ರೂರವಾಗಿ ಕಷ್ಟಕರವಾದ ಬಳಕೆಯ ನಂತರ-ಮುಕ್ತ ದೋಷಗಳನ್ನು ನೀವು ಪಡೆಯುತ್ತೀರಿ. ಕಟ್ಟುನಿಟ್ಟಾದ ಮಾಲೀಕತ್ವದ ಸೆಮ್ಯಾಂಟಿಕ್ಸ್ ಅನ್ನು ಜಾರಿಗೊಳಿಸುವ ಮೂಲಕ ನಾವು ಇದನ್ನು ಪರಿಹರಿಸಿದ್ದೇವೆ: C++ ವಸ್ತುಗಳು ಯಾವಾಗಲೂ ನಿಖರವಾಗಿ ಒಂದು ರಸ್ಟ್ ಹೊದಿಕೆಯ ಮಾಲೀಕತ್ವದಲ್ಲಿರುತ್ತವೆ ಮತ್ತು ಹಂಚಿದ ಪ್ರವೇಶವು ರಸ್ಟ್ ಭಾಗದಲ್ಲಿ ಆರ್ಕ್-ಆಧಾರಿತ ಉಲ್ಲೇಖ ಎಣಿಕೆಯ ಮೂಲಕ ಹೋಗುತ್ತದೆ.

ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರಕಾರ, ವಿಪರೀತ FFI ಕರೆಗಳು ಸಂದರ್ಭ ಸ್ವಿಚಿಂಗ್ ಮತ್ತು ಧಾರಾವಾಹಿಯಿಂದ ಓವರ್‌ಹೆಡ್ ಅನ್ನು ರಚಿಸುತ್ತವೆ. ನಾವು ಸಾಧ್ಯವಿರುವಲ್ಲೆಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಬ್ಯಾಚ್ ಮಾಡುತ್ತೇವೆ, ವೈಯಕ್ತಿಕ ಭಾಷೆಯ ಕರೆಗಳನ್ನು ಮಾಡುವ ಬದಲು C++ ಎಕ್ಸಿಕ್ಯೂಟರ್‌ಗೆ ಕೆಲಸದ ಐಟಂಗಳ ಸರದಿಯನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ.

ಉತ್ಪಾದನೆಯಲ್ಲಿ ಈ ವಿಧಾನವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಿತು?

ನಮ್ಮ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಾದ್ಯಂತ ಹೈಬ್ರಿಡ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ನಿಯೋಜಿಸಿದ ನಂತರ, ನಾವು ಕಾಂಕ್ರೀಟ್ ಸುಧಾರಣೆಗಳನ್ನು ಅಳೆಯುತ್ತೇವೆ. ಅನುಕ್ರಮ C++ ಸಂಸ್ಕರಣೆಯಲ್ಲಿ ಹಿಂದೆ ಅಡ್ಡಿಪಡಿಸಿದ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗಾಗಿ ವಿನಂತಿಯ ಥ್ರೋಪುಟ್ 3.4x ಹೆಚ್ಚಾಗಿದೆ. ಟೈಲ್ ಲೇಟೆನ್ಸಿ (p99) 61% ರಷ್ಟು ಕಡಿಮೆಯಾಗಿದೆ ಏಕೆಂದರೆ ರಸ್ಟ್‌ನ ಅಸಿಂಕ್ ರನ್‌ಟೈಮ್ ಸ್ವತಂತ್ರ ವಿನಂತಿಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು ಆದರೆ C++ ಅದರ ಮೀಸಲಾದ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಕಂಪ್ಯೂಟೇಶನ್-ಹೆವಿ ಟಾಸ್ಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.

ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿ, ಉತ್ಪಾದನೆಯ ಮೊದಲ ಆರು ತಿಂಗಳಲ್ಲಿ ನಾವು ಶೂನ್ಯ ಹೊಂದಾಣಿಕೆ-ಸಂಬಂಧಿತ ದೋಷಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಥ್ರೆಡ್-ಸೀಮಿತ ಮಾದರಿಯು C++ ಕೋಡ್ ಅನ್ನು ಬಹು ಥ್ರೆಡ್‌ಗಳಿಂದ ಕರೆಯಲು ರಚನಾತ್ಮಕವಾಗಿ ಅಸಾಧ್ಯವಾಗಿಸಿತು, ಆದರೆ ರಸ್ಟ್‌ನ ಪ್ರಕಾರದ ವ್ಯವಸ್ಥೆಯು ಅದರ ಗಡಿಯ ಬದಿಯಲ್ಲಿ ಡೇಟಾ ರೇಸ್‌ಗಳನ್ನು ತಡೆಯುತ್ತದೆ. ಮ್ಯೂಟೆಕ್ಸ್‌ಗಳೊಂದಿಗೆ C++ ಗೆ ಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಸೇರಿಸಲು ಪ್ರಯತ್ನಿಸುವ ನಮ್ಮ ಹಿಂದಿನ ವಿಧಾನಕ್ಕಿಂತ ಇದು ಗಮನಾರ್ಹ ಸುಧಾರಣೆಯಾಗಿದೆ, ಇದು ಒಂದೇ ತ್ರೈಮಾಸಿಕದಲ್ಲಿ ಮೂರು ರೇಸ್-ಕಂಡಿಶನ್ ಘಟನೆಗಳನ್ನು ಉಂಟುಮಾಡಿದೆ.

ಎಂಜಿನಿಯರಿಂಗ್ ತಂಡವು ವೇಗವಾದ ಪುನರಾವರ್ತನೆಯ ಚಕ್ರಗಳನ್ನು ಸಹ ವರದಿ ಮಾಡಿದೆ. ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಂಪೂರ್ಣ ಏಕಕಾಲಿಕ ಬೆಂಬಲದೊಂದಿಗೆ ರಸ್ಟ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಬಹುದು, ಆದರೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ C++ ಮಾಡ್ಯೂಲ್‌ಗಳು ಯಾವುದೇ ಬದಲಾವಣೆಯಿಲ್ಲದೆ ಚಾಲನೆಯಲ್ಲಿದೆ. ಈ ಹೆಚ್ಚುತ್ತಿರುವ ತಂತ್ರವು ನಾವು ಎಂದಿಗೂ ಹೆಚ್ಚಿನ ಅಪಾಯದ "ಬಿಗ್ ಬ್ಯಾಂಗ್" ವಲಸೆಯನ್ನು ಹೊಂದಿಲ್ಲ - ಕೇವಲ ಸ್ಥಿರವಾದ, ಅಳೆಯಬಹುದಾದ ಸುಧಾರಣೆ.

ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು

ರಸ್ಟ್ ಏಕ-ಥ್ರೆಡ್ C++ ಲೈಬ್ರರಿಗಳನ್ನು ಮಾರ್ಪಾಡು ಮಾಡದೆಯೇ ಕರೆಯಬಹುದೇ?

ಹೌದು, ಆದರೆ ಆ ಲೈಬ್ರರಿಗೆ ಎಲ್ಲಾ ಕರೆಗಳು ಒಂದೇ ಥ್ರೆಡ್‌ನಿಂದ ನಡೆಯುವುದನ್ನು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು. ಚಾನಲ್ ಮೂಲಕ ಎಲ್ಲಾ C++ ಕರೆಗಳನ್ನು ಧಾರಾವಾಹಿ ಮಾಡುವ ಮೀಸಲಾದ ಎಕ್ಸಿಕ್ಯೂಟರ್ ಥ್ರೆಡ್ ಅನ್ನು ರಚಿಸುವುದು ಪ್ರಮಾಣಿತ ಮಾದರಿಯಾಗಿದೆ. ಬಹು-ಥ್ರೆಡ್ ರನ್‌ಟೈಮ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸದೆಯೇ ರಸ್ಟ್‌ನ ಅಸಿಂಕ್ ಕಾರ್ಯಗಳು ವಿನಂತಿಗಳನ್ನು ಸಲ್ಲಿಸುತ್ತವೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಗಳಿಗಾಗಿ ಕಾಯುತ್ತಿವೆ. C++ ಕೋಡ್‌ಗೆ ಯಾವುದೇ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿಲ್ಲ - ಸುರಕ್ಷತಾ ನಿರ್ಬಂಧವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ರಸ್ಟ್ ಬದಿಯಲ್ಲಿ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ.

ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಲು FFI ಓವರ್‌ಹೆಡ್ ಸಾಕಷ್ಟು ಮಹತ್ವದ್ದಾಗಿದೆಯೇ?

ವೈಯಕ್ತಿಕ ಎಫ್‌ಎಫ್‌ಐ ಕರೆಗಳು ಕನಿಷ್ಠ ಓವರ್‌ಹೆಡ್ ಅನ್ನು ಹೊಂದಿವೆ - ಸಾಮಾನ್ಯವಾಗಿ ಸರಳ ಕಾರ್ಯದ ಕರೆಗಾಗಿ 10 ನ್ಯಾನೊಸೆಕೆಂಡ್‌ಗಳ ಅಡಿಯಲ್ಲಿ. ಆದಾಗ್ಯೂ, ನೀವು ಸಾವಿರಾರು ಸೂಕ್ಷ್ಮ ಕರೆಗಳನ್ನು ಮಾಡಿದರೆ ಸಂಕೀರ್ಣ ಡೇಟಾ ರಚನೆಗಳ ಸರಣಿ ಮತ್ತು ಗಡಿಯಲ್ಲಿ ಥ್ರೆಡ್ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ. ಬ್ಯಾಚಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳು ಮತ್ತು ಫ್ಲಾಟ್‌ಬಫರ್ಸ್ ಅಥವಾ ಕ್ಯಾಪ್'ನ್ ಪ್ರೊಟೊದಂತಹ ಶೂನ್ಯ-ನಕಲು ಧಾರಾವಾಹಿ ಸ್ವರೂಪಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಸ್ಕೇಲ್‌ನಲ್ಲಿಯೂ ಸಹ ಓವರ್‌ಹೆಡ್ ನಗಣ್ಯವಾಗಿರುವಂತೆ ಮಾಡುತ್ತದೆ.

ನಾವು ಇಂಟರ್‌ಫೇಸಿಂಗ್ ಬದಲಿಗೆ ರಸ್ಟ್‌ನಲ್ಲಿ ನಮ್ಮ C++ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಪುನಃ ಬರೆಯಬೇಕೇ?

ಹೆಚ್ಚಿನ ತಂಡಗಳಿಗೆ, ಹೆಚ್ಚುತ್ತಿರುವ ಇಂಟರ್‌ಫೇಸಿಂಗ್ ಸುರಕ್ಷಿತ ಮತ್ತು ವೇಗದ ಮಾರ್ಗವಾಗಿದೆ. ಪೂರ್ಣ ಮರುಬರಹವು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಯಾವುದೇ ಬಳಕೆದಾರ-ಮುಖಿ ಮೌಲ್ಯವಿಲ್ಲದೆ ಎಂಜಿನಿಯರಿಂಗ್ ಅಪಾಯದ ತಿಂಗಳುಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಇಂಟರ್‌ಫೇಸಿಂಗ್ ನಿಮಗೆ ಸುಧಾರಣೆಗಳನ್ನು ತಕ್ಷಣವೇ ರವಾನಿಸಲು, ಉತ್ಪಾದನೆಯಲ್ಲಿ ರಸ್ಟ್ ವಿಧಾನವನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಮತ್ತು ಏಕಕಾಲದಲ್ಲಿ ಹೆಚ್ಚಿನ ಪರಿಣಾಮವನ್ನು ನೀಡುವ ಆಧಾರದ ಮೇಲೆ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಸ್ಥಳಾಂತರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. FFI ಗಡಿಯನ್ನು ನಿರ್ವಹಿಸುವ ವೆಚ್ಚವು ಪುನಃ ಬರೆಯುವ ವೆಚ್ಚವನ್ನು ಮೀರುವ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಮಾತ್ರ ಪುನಃ ಬರೆಯಿರಿ.


ಮೆವೇಜ್‌ನಲ್ಲಿ, ನಾವು ತಾಂತ್ರಿಕವಾಗಿ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯ ಎರಡೂ ಮಾಪಕಗಳ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ. ನಮ್ಮ 207-ಮಾಡ್ಯೂಲ್ ವ್ಯಾಪಾರ OS 138,000 ತಂಡಗಳಿಗೆ $19/ತಿಂಗಳು ಪ್ರಾರಂಭವಾಗುವ ಸ್ಮಾರ್ಟ್ ವರ್ಕ್‌ಫ್ಲೋಗಳನ್ನು ನಡೆಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನೀವು ಪ್ರಾಜೆಕ್ಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಿರಲಿ, ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುತ್ತಿರಲಿ ಅಥವಾ ನಿಮ್ಮ ವ್ಯಾಪಾರವನ್ನು ಸ್ಕೇಲಿಂಗ್ ಮಾಡುತ್ತಿರಲಿ, ನೀವು ಕೆಲಸ ಮಾಡುವ ವಿಧಾನಕ್ಕೆ Mewayz ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. app.mewayz.com ನಲ್ಲಿ ನಿಮ್ಮ ಉಚಿತ ಪ್ರಯೋಗವನ್ನು ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ನಿಮ್ಮ ತಂಡಕ್ಕಾಗಿ ಆಧುನಿಕ ವ್ಯಾಪಾರ OS ಏನು ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನೋಡಿ.