{"id":31077,"date":"2023-01-19T08:32:14","date_gmt":"2023-01-19T03:02:14","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/"},"modified":"2023-01-19T08:32:14","modified_gmt":"2023-01-19T03:02:14","slug":"solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/","title":{"rendered":"[Solved] Is there any way I can make my function for testing the equality of strings even faster?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-52135630\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"52135630\" data-parentid=\"52134966\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Your first function just do not work and is wrong.<\/p>\n<p>You do not the correct parameter types. Do not use <code>register<\/code> as it has no effect at all. Register is ignored at any level of optimization. Compilers are better than me or you in micro optimizations &#8211; so help the compiler optimizer with the <code>const<\/code> and <code>restrict<\/code> when applicable.<\/p>\n<p>The second one can be simplified.<\/p>\n<pre><code>int stringsequal1(const char *restrict s1, const char *restrict s2)\n{\n    do\n    {\n        if(*s1 != *s2) return 0;\n    }\n    while(*s1++ + *s2++);\n    return 1;\n}\n<\/code><\/pre>\n<p>and thew result code for both is:<\/p>\n<pre><code>int stringsequal1(const char *s1, const char *s2)\n{\n    do\n    {\n        if(*s1 != *s2) return 0;\n    }\n    while(*s1++ + *s2++);\n    return 1;\n}\n\nstringsequal1:\n        xor     edx, edx\n        jmp     .L11\n.L15:\n        add     rdx, 1\n        add     eax, eax\n        je      .L14\n.L11:\n        movsx   eax, BYTE PTR [rdi+rdx]\n        cmp     al, BYTE PTR [rsi+rdx]\n        je      .L15\n        mov     eax, 1\n        ret\n.L14:\n        ret\n\nint stringsequal2(register char *s1, register char *s2)\n{\n    while(1)\n    {\n        if(!((*s1 + *s2) ^ 0)) return 1;\n        if(*(s1 ++) ^ *(s2 ++)) break;\n    }\n    return 0;\n}\n\nstringsequal2:\n        xor     eax, eax\n        jmp     .L18\n.L22:\n        add     rax, 1\n        cmp     cl, r9b\n        jne     .L21\n.L18:\n        movsx   r8d, BYTE PTR [rdi+rax]\n        movsx   r9d, BYTE PTR [rsi+rax]\n        mov     ecx, r8d\n        add     r8d, r9d\n        jne     .L22\n        mov     eax, 1\n        ret\n.L21:\n        xor     eax, eax\n        ret\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Is there any way I can make my function for testing the equality of strings even faster? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Your first function just do not work and is wrong. You do not the correct parameter types. Do not use register as it has no effect at all. Register is ignored at any level of optimization. Compilers are better than me or you in micro optimizations &#8211; so help the compiler optimizer with the &#8230; <a title=\"[Solved] Is there any way I can make my function for testing the equality of strings even faster?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\" aria-label=\"More on [Solved] Is there any way I can make my function for testing the equality of strings even faster?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,325],"class_list":["post-31077","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Your first function just do not work and is wrong. You do not the correct parameter types. Do not use register as it has no effect at all. Register is ignored at any level of optimization. Compilers are better than me or you in micro optimizations &#8211; so help the compiler optimizer with the ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-19T03:02:14+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Is there any way I can make my function for testing the equality of strings even faster?\",\"datePublished\":\"2023-01-19T03:02:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\"},\"wordCount\":107,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"performance\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\",\"name\":\"[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2023-01-19T03:02:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Is there any way I can make my function for testing the equality of strings even faster?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb","og_description":"[ad_1] Your first function just do not work and is wrong. You do not the correct parameter types. Do not use register as it has no effect at all. Register is ignored at any level of optimization. Compilers are better than me or you in micro optimizations &#8211; so help the compiler optimizer with the ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/","og_site_name":"JassWeb","article_published_time":"2023-01-19T03:02:14+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Is there any way I can make my function for testing the equality of strings even faster?","datePublished":"2023-01-19T03:02:14+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/"},"wordCount":107,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","performance"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/","url":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/","name":"[Solved] Is there any way I can make my function for testing the equality of strings even faster? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-19T03:02:14+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-is-there-any-way-i-can-make-my-function-for-testing-the-equality-of-strings-even-faster\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Is there any way I can make my function for testing the equality of strings even faster?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=31077"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31077\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=31077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=31077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=31077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}