文章 2024-07-22 来自:开发者社区

程序员必看!Python复杂度分析全攻略,让你的算法设计既快又省内存!

在编程的广阔天地里,Python以其简洁的语法、丰富的库支持和强大的社区力量,成为了众多程序员的首选语言。然而,在享受Python带来的便利时,我们也必须面对性能优化的挑战。算法设计的复杂度分析,正是这把打开性能优化之门的钥匙。本文将带你深入Python算法的复杂度分析,分享最佳实践,让你的代码既快...

文章 2024-06-26 来自:开发者社区

程序员必知:关于Linux内存寻址与页表处理的一些细节

我们很容易从一些Linux内核的书籍中知道X86架构使用2级( 10-10-12 )页表,X86-64架构使用4级( 9-9-9-9-12 )页表甚至是5级(在pgd_t与pud_t中间加了一层p4d_t),但是一些隐藏的问题却往往被忽略,如每一个进程的页表存储在内核空间吗?为什么内核中页表所在页框物理地址转化为虚拟地址只需要加个偏置 PA...

文章 2023-10-23 来自:开发者社区

8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】

前言我们写代码,离不开处理各种数据,我们靠数据储存各种信息。你有没有想过,那么为什么要规定那么多种数据类型?它们在内存中的储存方式一样吗?本文将详细介绍数据在内存中的储存,将重点介绍以下几个方面:数据类型详细介绍、整形在内存中的存储:原码、反码、补码、大小端字节序介绍及判断、浮点型在内存中的存储解析1. 数据类型介绍这里指针基础必备知识【C语言/初阶】(详情请看1、2节)已介绍了基本的内置类型以....

8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
文章 2022-08-17 来自:开发者社区

程序员需要了解的硬核知识之内存(三)

环形缓冲区循环队列一般是以环状缓冲区(ring buffer)的方式实现的,它是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。假如我们要用 6 个元素的数组来实现一个环形缓冲区,这时可以从起始位置开始有序的存储数据,然后再按照存储时的顺序把数据读出。在数组的末尾写入数据后,后一个数据就会从缓冲区的头开始写。这样,数组的末尾和开头就连接了起来。链表下面我们来介绍一下链表和 ....

程序员需要了解的硬核知识之内存(三)
文章 2022-08-17 来自:开发者社区

程序员需要了解的硬核知识之内存(二)

内存的使用指针指针是 C 语言非常重要的特征,指针也是一种变量,只不过它所表示的不是数据的值,而是内存的地址。通过使用指针,可以对任意内存地址的数据进行读写。在了解指针读写的过程前,我们先需要了解如何定义一个指针,和普通的变量不同,在定义指针时,我们通常会在变量名前加一个 * 号。例如我们可以用指针定义如下的变量char *d; // char类型的指针 d 定义 short *e; // sh....

程序员需要了解的硬核知识之内存(二)
文章 2022-08-17 来自:开发者社区

程序员需要了解的硬核知识之内存(一)

什么是内存内存(Memory)是计算机中最重要的部件之一,它是程序与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,内存又被称为主存,其作用是存放 CPU 中的运算数据,以及与硬盘等外部存储设备交换的数据。只要计算机在运行中,CPU 就会把需要运算的数据调到主存中进行运算,当运算完成后CPU再将结果传送出来,主存的运行也决定了计算机的稳定运行。内存的....

程序员需要了解的硬核知识之内存(一)
文章 2022-05-29 来自:开发者社区

你还不懂硬盘,内存和CPU的关系 ?(程序员入门)

一、硬盘内存CPU图有的人竟然把内存和硬盘当成一个东西?二、硬盘讲解硬盘简介①电脑硬盘是计算机最主要的存储设备。②硬盘(港台称之为硬碟,英文名:Hard Disk Drive, 简称HDD 全名:温彻斯特式硬盘)由一个或者多个铝制或者玻璃制的碟片组成。③这些碟片外覆盖有铁磁性材料。正常分类:机械硬盘(HDD)、固态硬盘(SSD)以及混合硬盘(SSHD)机械硬盘(HDD)是传统硬盘,为电脑主要的存....

你还不懂硬盘,内存和CPU的关系 ?(程序员入门)
文章 2022-05-13 来自:开发者社区

java程序员必须知道的内存知识-应用层

1.volatile可见性,使用volatile修饰的变量可以立刻被其它线程读取到,经常会被用到多线程同步的关键变量上,像aqs的state。因为CPU在访问主存需要大约十几个时钟周期,为了提高cpu的效率便有了高速缓存,当数据被加载到高速缓存时,其它核并不能第一时间看到。内存屏障,最常见的就是双检锁了,我们简单的new对象在虚拟机内部其实需要很多操作,虚拟机为了提高性能,会对我们代码进行重排,....

java程序员必须知道的内存知识-应用层
文章 2022-03-16 来自:开发者社区

程序员需要了解的硬核知识之内存(三)

环形缓冲区循环队列一般是以环状缓冲区(ring buffer)的方式实现的,它是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。假如我们要用 6 个元素的数组来实现一个环形缓冲区,这时可以从起始位置开始有序的存储数据,然后再按照存储时的顺序把数据读出。在数组的末尾写入数据后,后一个数据就会从缓冲区的头开始写。这样,数组的末尾和开头就连接了起来。链表下面我们来介绍一下链表和 ....

程序员需要了解的硬核知识之内存(三)
文章 2022-03-16 来自:开发者社区

程序员需要了解的硬核知识之内存(二)

内存的使用指针指针是 C 语言非常重要的特征,指针也是一种变量,只不过它所表示的不是数据的值,而是内存的地址。通过使用指针,可以对任意内存地址的数据进行读写。在了解指针读写的过程前,我们先需要了解如何定义一个指针,和普通的变量不同,在定义指针时,我们通常会在变量名前加一个 * 号。例如我们可以用指针定义如下的变量char *d; // char类型的指针 d 定义 short *e; // sh....

程序员需要了解的硬核知识之内存(二)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐