自由学习记录(2)

Unity打包图集相关

 

 

Draw Call

实验设置:

我们将创建两个场景,一个场景有高 Draw Call,另一个场景通过优化减少 Draw Call。然后对比它们的帧率(FPS)。

场景 1:高 Draw Call 场景(无优化)
  • 目标:增加 Draw Call 数量。
  • 对象:放置 100 个 Cube。
  • 材质:给每个 Cube 分配不同的材质
    • 每个对象将生成一个新的 Draw Call。
    • 使用简单材质即可,比如不同颜色的标准材质。
场景 2:低 Draw Call 场景(优化)
  • 目标:减少 Draw Call。
  • 对象:同样放置 100 个 Cube。
  • 材质:给所有 Cube 使用相同的材质
    • Unity 会自动进行静态批处理(Static Batching)或动态批处理(Dynamic Batching),从而减少 Draw Call 数量。

数据对比:

场景Draw Call 数量FPS(高性能设备)FPS(低性能设备)
场景 1(高 Draw Call)~10060+30-40
场景 2(低 Draw Call)~1-1060+50-60

步骤:

  1. 创建两个场景:一个场景有 100 个使用不同材质的 Cube,另一个场景有 100 个使用相同材质的 Cube。
  2. 查看帧率:通过 Unity 的 Stats 窗口(在 Game 视图中点击 "Stats" 按钮)查看帧率(FPS)和 Draw Call 的数量。
  3. 记录 Draw Call 和 FPS:在两种场景中分别记录 Draw Call 和 FPS。

::: 这么多个drawcall才降这么点帧率?感觉还好啊

的确在高性能上,似乎表现的并不明显,但低端机型玩家也是同样存在的

不管drawcall就是在和低端机sayno

Java的迭代器和遍历的并发问题

迭代器天然知道有并发的遍历删除问题,所以这里用了很modcount去检测数量的不变,有变化就抛出异常

利用了匿名类对象

本质是,传入了一个类对象,这里面的泛型参数就是创建collection的时候带入的泛型参数,这里带入的T泛型是string类型,所以传入的consumer类里的泛型

配上 了通配符?super,只能用其父类级别或自己,

调用的是这个consumer类对象的里面的方法,然后让你重写,这里面的accept方法,而这个accept方法会在collection里面的foreach函数里面调用

前面为单个个体,:  后面是数组 

数组.for就会补全

既可以遍历集合,也可以遍历数组 

迭代器

Java的Collection<>

Java里所有泛型最后编译都会换成object来装

贯彻万物皆对象,于是有了包装类接基本数据类型

不能直接new后面(100) 

换成方法复制,因为把常用的全部缓存了,不用额外new,这样常用的就不用多次占内存了

自动装箱,不需要调方法,把值对象转引用后给出

自动拆箱

但只是为了当对象做一个integer对象,很多程序员并不买单,所以在这个对象里又增加了额外的功能

《公路法》

《公路法》有明确规定,擅自在公路上打场晒粮、堆放杂物、设置障碍等行为属于违法行为。并且公路周边也是禁止放牧的。如果没有按照规定在公路放牧,牲畜所有人应当承担相应的法律责;造成人员伤的,牲畜所有人还需要赔偿对方的一切损失,保险公司对于牲畜伤亡不予赔偿。

碰撞到一般牲畜并进行赔偿后能否带走?

假设一名司机在驾车过程中碰撞到一头猪或一只羊并且直接将牲畜撞死,车主按照协商之后赔偿给牲畜所有人费用,之后能不能把撞死的牲畜带走以补偿损失呢?

这是一些汽车爱好者提出的问题。

正确答案:

不可以。

因为赔偿和买卖是两个概念,撇开所谓的动物防疫检测等相关事宜不谈,将牲畜撞死后进行赔偿只是赔偿牲畜所有人的损失。而想要获得被撞死的牲畜就不是赔偿而是买卖的行为,如果能与牲畜所有人协商为买卖,那么带走就是没有问题的。反之,如果牲畜所有人要求赔偿而不接受买卖的话,那么车主就只能接受赔偿的方案。

 SQL用户权限和事务

小海豚会自动提交事务,关了也没用,所以要用事务就要用cmd

rollback:回到开始

mysql命令行登录

默认会自动commit,意思是如果改了就会立刻提交,如果想体现事务的同时性,就必须关掉自动提交,但是每次打开,默认都会把自动提交打开,所以每次打开如果想要用事务一样,就要重新把autocommit关一遍

子表查询综合练习

表的创建和信息的填入

create table students(

student_id int primary key,

name varchar(50),

age int,

gender varchar(10)

);

创建表结构之后,插入数据

insert into students(student_id,name,age,gender)

values(1,'alice',20,'女'),(2,'bob',22,'男'),(3,'charlie',21,'男'); 

创建课程表

插入信息again

再建第三表,分数表

与学生表和课程表相关,设置了两个foreign key

foreign key(student_id) references students(student_id),

foreign key (course_id) references courses(course_id)

分数表的插入

表的查询操作

 select name ,age, course_name,course_socre from students,(select course_name from courses where students.id=course.id)

需求分析为,外连接,学生表为主表

先把各需要查的表连接起来, from students stu left join scores sc on stu.student_id=sc.student_id

                        left join courses cou on sc.course_id=cou.course_id

  (学生表和分数表有主外键连接,分数表和课程表有主外键连接) ,学生表如果想拼上课程表,没有键的连接,拼不了

小补充:

在 SQL 中,如果你想给表中的所有行添加一个相同的列,并且为这个列设置相同的值,可以通过以下几个步骤来实现:

  1. 使用 ALTER TABLE 添加新列
  2. 使用 UPDATE 为新列的所有行设置相同的值

ALTER TABLE my_table
ADD new_column VARCHAR(255);


UPDATE my_table
SET new_column = 'default_value';

这条语句会将 my_table 中所有行的 new_column 列的值设置为 'default_value'

如果你希望在添加列的同时为新列设置默认值,你可以使用 DEFAULT 关键字。这会在添加列时立即为该列赋一个默认值。

ALTER TABLE users
ADD status VARCHAR(10) DEFAULT 'active';

 接下来,表之间的联系已经建立,构成了一张已经完整的大表,

接下来就是select后写要查的信息了

select stu.name,stu.age,cou.course_name,sc.score

执行结果

 

 

select avg(score) avgsc from scores group by student_id;

select name ,avgsc from students left join (select id,avg(score) avgsc from scores group by student_id) tmp on students.id=tmp.id

修改后

先连接一下分数表和学生信息表,得到了学生姓名,然后拿学生姓名分组,最后order by avs

desc降序排列

表的整个复制

等同于

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443133.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构与算法-高阶】并查集

【数据结构与算法-高阶】并查集 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; &#x1f33c;文章目录&#x1f33c; 1. 并查集原理 2. 并查集实现 3. 并查集应用 1. 并查集原理 在一些应用问题中&…

了解HTTPS

目录 1.HTTP认识 2.HTTP请求 3.HTTP响应 4.URL 5.HTTP方法 面试题&#xff1a;POST 和 GET区别&#xff1f; 网上关于 GET 与 POST的差别 有待商议 关于请求报头 和 响应报头 6..Host &#xff1a; 7..USer-Agent&#xff08;简称UA&#xff09; 8.状态码 9.HTTPS 是…

读懂MySQL事务隔离

什么是事务 事务就是一组原子性的SQL查询&#xff0c;或者说一个独立的工作单元。事务内的语句&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败。 关于事务银行系统的应用是解释事务必要性的一个经典例子。 假设一个银行的数据库有两张表&#xff1a;支票表&#x…

【Windows】开始菜单关键错误以及系统应用闪退问题记录

一 开始菜单关键错误 Windows长时间没有重启&#xff0c;重启之后开始菜单点不进去&#xff0c;报错“关键错误”。 查询网上有两种解决方案&#xff1a; 【1】更新系统版本&#xff1b; 【2】通过powershell执行一次性恢复所有应用的指令&#xff1b; 我这边采用第二种方法&am…

如何使用pymysql和psycopg2执行SQL语句

在Python中&#xff0c;pymysql和psycopg2是两个非常流行的库&#xff0c;用于与MySQL和PostgreSQL数据库进行交互。本文将详细介绍如何使用这两个库来执行SQL查询、插入、更新和删除操作。 1. 准备工作 首先&#xff0c;确保已经安装了pymysql和psycopg2库。如果尚未安装&a…

指针函数C++

指针函数概念 指针函数在C中是一种特殊类型的函数。从本质上讲&#xff0c;它是一个函数&#xff0c;不过其返回值是一个指针类型的数据。例如&#xff0c;像int* plusfunction(int a, int b);这样的函数声明&#xff0c;plusfunction就是一个指针函数&#xff0c;它接受两个i…

CentOS7.9 下安装 Docker

第一步&#xff1a; sudo yum install -y yum-utils \ > device-mapper-persistent-data \ > lvm2 第二步&#xff1a;安装 sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum -y install…

IT监控可视化:运维团队的智慧之眼

在当今这个数字化时代&#xff0c;IT系统已成为企业运营的核心支柱。随着业务的不断扩展和IT架构的日益复杂&#xff0c;运维团队面临着前所未有的挑战。如何高效、准确地监控和管理IT资源&#xff0c;确保系统的稳定性和可用性&#xff0c;成为了运维工作的重中之重。而IT监控…

CSS3--美若天仙!?

免责声明&#xff1a;本文仅做分享~ 目录 CSS引入方式 选择器 盒子尺寸和背景色 文字控制属性 单行文字 垂直居中 字体族 font复合属性 文本对齐方式 文本修饰线 color 文字颜色 ----- 复合选择器 伪类选择器 超链接伪类 CSS特性 继承性 层叠性 优先级 Emmet …

Linux驱动---光电开关、火焰传感器、人体红外传感器

文章目录 一、电路连接二、设备树三、驱动代码 一、电路连接 人体红外 – PF12 检测到人体时会产生一个上升沿 光电开关 – PE15 有遮挡物时会产生一个上升沿 火焰传感器 – PF5 有火焰时会产生一个上升沿 二、设备树 /{ //人体红外PF12human{ compatible "zyx,huma…

数据驱动投资:AI在股票市场的应用

当ChatGPT首次亮相时&#xff0c;其卓越的语言处理能力立刻引起了许多行业的广泛关注&#xff0c;投资界也不例外。关于ChatGPT是否能应用于投资决策的问题&#xff0c;迅速成为热门讨论的焦点。 近期&#xff0c;加拿大多伦多大学和印度孟买理工学院的研究人员联合开展了一项…

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接&#xff1a;http://arxiv.org/abs/1801.08163 启发&#xff1a;没太读懂这篇论文&#xff0c;暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY&#xff0c;模型有两个版本&#xff0c;Oracle和OCR。主要解决的问题是固定词表无…

C++ —— 优先级队列(priority queue)的模拟实现

目录 杂谈 vector和list的区别 1. 优先级队列的定义 2. 优先级队列的模拟实现 3. 仿函数 链接&#xff1a; priority_queue - C Reference (cplusplus.com)https://legacy.cplusplus.com/reference/queue/priority_queue/?kwpriority_queue 杂谈 vector和list的区别 在…

UPDATE 和 DELETE数据库表的多行

文章目录 说明程序测试结果 说明 程序 *&---------------------------------------------------------------------* *& Report Z_TEST_1008 *&---------------------------------------------------------------------* *& *&--------------------------…

手机怎样改网络ip地址?内容详尽实用

随着网络技术的发展&#xff0c;更改手机IP地址已成为一种常见需求。本文将详细介绍如何在不同网络环境下更改手机IP地址&#xff0c;包括移动网络和WiFi网络&#xff0c;以及同时适用于两种网络的方法&#xff0c;内容详尽实用&#xff0c;干货满满。 一、适用于移动网络&…

vue3 vue2

vue3.0是如何变快的&#xff1f; diff算法优化 vue2的虚拟dom是进行全局的对比。vue3 新增了静态标记&#xff08;patchFlag&#xff09; 在与上次虚拟节点进行比较的时候&#xff0c;只对比带有patch Flag的节点&#xff0c;并且可以通过flag的信息得知当前节点要对比的具体内…

10.9 Qt事件处理机制

键盘按键调整label移动 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QKeyEvent>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);}Widget::~Widget() {delete ui;…

C++——vector

目录 一、简介 二、接口 1.构造 2.空间变化 3.增删查改 三、vector与string的区别 四、模拟实现 vector.h test.cpp 一、简介 vector&#xff0c;其实就是我们C语言学过的动态顺序表&#xff0c;一个可以存储任何数据类型&#xff0c;可以动态增长的数组。C的STL将其收…

项目完整开发的流程

流程 1.设计产品 2.写需求文档 2.1需求分析&#xff0c;后端设计数据库&#xff0c;建表&#xff0c;客户沟通&#xff0c;说完签字&#xff0c;留证据&#xff0c;防止后面扯皮&#xff0c;和防止后续变需求重新写业务 3.画原型图&#xff0c;也就是草图&#xff0c;初始的…

Java报错输出的信息究竟是什么?

Java报错输出的信息究竟是什么&#xff1f; 本篇会带大家了解一下java运行时报错输出的信息内容&#xff0c;简单学习一下虚拟机内存中Java虚拟机栈的工作方式以及栈帧中所存储的信息内容 异常信息 当你的程序运行报错时&#xff0c;你是否会好奇打印出来的那一大坨红色的究竟…